Webpack angular2编译错误

时间:2016-06-19 11:19:19

标签: typescript compilation angular webpack

您好我正在尝试使用Webpack编译angular2,所有这些似乎工作正常我得到此错误

nodecrm/node_modules/reflect-metadata/Reflect.ts
(1406,33): error TS2304: Cannot find name 'msCrypto'. 

我正在关注有针对性的网站guid https://angular.io/docs/ts/latest/guide/webpack.html 有什么东西我错过了吗?我的tsconfig.json文件如下所示:

{
  "compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "moduleResolution": "node",
    "sourceMap": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "removeComments": false,
    "noImplicitAny": false
  },
    "exclude": [
            "node_modules",
            "typings/browser",
            "typings/browser.d.ts"
    ],
    "compileOnSave": true,
    "buildOnSave": false,
    "atom": {
        "rewriteTsconfig": false
    }
}

感谢您的任何建议......

3 个答案:

答案 0 :(得分:0)

来自webpack简介文章的最新tsconfig.json如下所示 -

{
  "compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "moduleResolution": "node",
    "sourceMap": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "removeComments": false,
    "noImplicitAny": true,
    "suppressImplicitAnyIndexErrors": true
  }
}

尝试更改为此。看看这是否有帮助。

答案 1 :(得分:0)

reflect-metadata包具有crypto的依赖关系,因此请将它们安装为

npm install reflect-metadata crypto --save

答案 2 :(得分:0)

对我来说,这是由包含旧版本angular2-universal-polyfills软件包的reflect-metadata软件包引起的。 我已经通过使用npm下载实际的反射元数据来修复它:

npm install reflect-metadata

然后将node_modules \ reflect-metadata文件夹复制到node_modules \ angular2-universal-polyfills \ node_modules文件夹中,重写其中的旧文件夹。

希望这可以帮助面临此问题的人。我当时正在使用angular2.4.5和webpack开发一个旧项目。