Angular1.5 + TypeScriptを組み合わせようとしています。インストール済みの必要なタイプ:
npm install @types/angularjs
それでもエラーが表示される:
エラーTS2307:モジュール 'angular'が見つかりません
すでにさまざまなオプションを試しました:
import 'angular';
import 'angularjs'; //that is name inside @types
import angular from 'angularjs';
import * as angular from 'angular';
私は使用しています:
"ts-loader": "1.0.0",
"TypeScript": "2.0.7",
"webpack": "1.13.3",
"webpack-dev-server": "1.16.2"
tsconfigはかなり標準です:
{
"compilerOptions": {
"target": "es5",
"noImplicitAny": false,
"sourceMap": false,
"lib": ["es6", "dom"],
"typeRoots": ["./node_modules/@types"]
},
"exclude": ["node_modules"]
}
すでに簡略化されていますwebpack可能な限り設定します:var webpack = new require( 'webpack');
module.exports = {
context: __dirname + '/src',
entry: './index.ts',
output: {
path: './dist',
filename: 'app.bundle.js'
},
module: {loaders: [{test: /\.tsx?$/, loader: 'ts-loader'},]},
resolve: {
extensions: ['', '.webpack.js', '.web.js', '.ts', '.tsx', '.js'],
},
plugins: [new webpack.NoErrorsPlugin()],
devtool: 'source-map',
devServer: {
contentBase: './dist',
historyApiFallback: true,
inline: true
}
};
また、index.ts自体を単純化して、タイプのインポートのみに焦点を当てました。
import * as angular from 'angular';
angular.module('testmodule', []);
[〜#〜] upd [〜#〜]:tsconfig.json。 typeRootsオプションが追加されました。
新しいエラーが発生しています:
.../node_modules/@types/angularjs/angular-mocks.d.ts(6,26)のエラー:エラーTS2307:モジュール 'angular'が見つかりません。
.../node_modules/@types/angularjs/angular-mocks.d.ts(65,49)のエラー:エラーTS2304:名前 'IServiceProvider'が見つかりません。
.../node_modules/@types/angularjs/angular-mocks.d.ts(122,62)のエラー:エラーTS2304:名前 'IScope'が見つかりません。
.../node_modules/@types/angularjs/index.d.ts(66,43)のエラー:エラーTS2304:名前 'JQuery'が見つかりません。
コマンドラインでこれを実行すると、問題が修正されます。
npm install @types/angular
この修正で迷惑なのは、何らかの理由でpackage.jsonが更新されないことです。ただし、package.json内の依存関係に以下を追加すると、上記の代わりにが問題を修正するはずです。 package.jsonにパッケージをミラーリングさせます。
"@types/angular": "1.6.5",
"@types/jquery": "2.0.40",