我正在开发的应用程序在过去的几个月里是 Angular 4.3.4,我决定将其更新到最新版本 5.2.2。
简而言之,当我尝试使用"ng build --prod"构建产品时,CLI 会向我抛出此错误:
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。似乎没有任何效果。
有人碰巧有同样的问题吗?
谢谢!
我自己修复了它。功劳归功于Gullfaxi的 https://github.com/sureshchahal/angular2-adal/issues/23 评论。
这个问题与AOT编译有关,但不要进一步问我这个问题。我无法详细解释任何事情。
但是,转到您的 tsconfig.app.json 并添加以下行:
"paths": { "@angular/*": ["../node_modules/@angular/*"] },
还要确保在同一文件中,模块设置为"es2015"。
希望这对你有用!
摆脱这种情况并略微妨碍性能的最佳方法是使用以下代码构建应用程序:
ng build --prod --aot=false --build-optimizer=false.
希望这能解决你的问题。