升级到Angular 5.2.2后,“ng build --prod”无法工作

3

我正在开发的应用程序过去几个月一直是Angular 4.3.4版本,现在我决定将其更新到最新版本5.2.2。

简单来说,当我尝试使用“ng build --prod”构建生产时,命令行界面会抛出以下错误:

ERROR in Error during template compile of 'ea'
  Function calls are not supported in decorators but 'emakeDecorator' was 
  called in 'Injectable'
  'Injectable' calls 'emakeDecorator'

我已经尝试了很多方法,包括删除node_modules和package-lock.json文件,更新npm以及尝试使用5.2.0版本代替5.2.2版本。但是似乎都没有用。

有没有人遇到相同的问题呢?

谢谢!

2个回答

6
我自己解决了这个问题。功劳归于Gullfaxi在https://github.com/sureshchahal/angular2-adal/issues/23的评论。
这个问题与AOT编译有关,但是请不要向我进一步询问。我无法详细解释任何内容。
不过,请前往你的tsconfig.app.json文件并添加以下行:
"paths": { "@angular/*": ["../node_modules/@angular/*"] },

还要确保在同一文件中,该模块设置为“es2015”。

希望这对你有用!


自问自答,感激不尽 :) - Pardeep Jain

1
最好的解决方法是使用以下代码构建应用程序,虽然会稍微影响性能。
ng build --prod --aot=false --build-optimizer=false.

希望这能解决你的问题。

我不认为这是最好的解决方法,但至少可以帮助轻松跳过错误,直到找到并设置正确的配置。这就是为什么我点赞了这个答案 :) - ana

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接