4

目前,我正在使用升级模块将 AngularJS 应用程序升级到 Angular 4。使用我们当前的 webpack 配置,它在开发和生产中都可以正常工作。

当我通过添加aot编译时@ngtools/webpack,我摆脱了所有编译错误,但是有一个运行时错误:

Error: [$injector:strictdi] r is not using explicit annotation and cannot be invoked in strict mode.

不过,这应该不是问题,因为我使用的是babel-plugin-angularjs-annotate. 它仅在我添加@ngtools/webpack加载程序时发生;否则它工作正常。

这是 webpack 配置的相关部分:

/* Loaders to handle scss, css, etc.*/

{test: /\.ts$/, use: "@ngtools/webpack"}, // Doesn't work
// Below lines work, if used instead of line above
//{ 
//  test: /\.ts$/,
//  loaders: ["awesome-typescript-loader", "angular2-template-loader"]
//},
{
  test: /\.js$/,
  exclude: [
    /node_modules/,
    path.join(__dirname, "src", "vendor")
  ],
  use: ["babel-loader", "eslint-loader"]
}

稍后我还添加了 aot 插件,但这不是导致问题的原因。

这是整个 .babelrc:

{
  "presets": [
    "es2015"
  ],
  "plugins": [
    "angularjs-annotate"
  ]
}
4

0 回答 0