目前,我正在使用升级模块将 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"
]
}