2016-11-04 137 views
4

我正在尝试结合Angular1.5 + Typescript。 安装需要类型:AngularJs + Typescript:错误TS2307:找不到'angular'模块

npm install @types/angularjs

,但仍然看到错误:

error TS2307: Cannot find module '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 =新要求( '的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选项。

现在获得新的错误:

ERROR in .../node_modules/@types/angularjs/angular-mocks.d.ts (6,26): error TS2307: Cannot find module 'angular'.

ERROR in .../node_modules/@types/angularjs/angular-mocks.d.ts (65,49): error TS2304: Cannot find name 'IServiceProvider'.

ERROR in .../node_modules/@types/angularjs/angular-mocks.d.ts (122,62): error TS2304: Cannot find name 'IScope'.

ERROR in .../node_modules/@types/angularjs/index.d.ts (66,43): error TS2304: Cannot find name 'JQuery'.

+0

你可以显示你的目录结构和tsconfig文件吗?另外,如果您使用的是像Webpack或SystemJS这样的工具,那么也可以配置它。 –

+0

感谢您的反馈,更新了我的问题 –

+0

尝试在您的tsconfig中将''typeRoots“:[[./node_modules/@types]]'添加到''compilerOptions”'' –

回答

3

,如果你在命令行中运行这个应该解决这个问题。

npm install @types/angular 

什么恼人的有关此修复程序是出于某种原因,如果你添加以下到你的依赖的package.json 内的上面,而不是应该修复它不会更新您的package.json。但是问题并使package.json镜像您的包。

"@types/angular": "1.6.5", 
"@types/jquery": "2.0.40", 
+4

'由于某些原因,它不会更新你的package.json' - 添加'--save'标志为了将它保存在npm5的package.json –

+0

中,npm将默认保存--save。 – Prashant

相关问题