我有一个相当老的Angular 2项目。 Angular CLI 1.3.1(当前最新版本是6.2.3)。
我可以成功构建用于开发和生产的项目。
发展顺利。
生产版本具有javascript运行时错误,这些错误似乎是由于不良丑化造成的:
“未捕获的TypeError:无法读取未定义的属性'a' 在Object.oxwE(vendor.a1c77430ed052dea4a8f.bundle.js:1) 在n(inline.929671279f1ce76b75d9.bundle.js:1) 在Object。+ nms(vendor.a1c77430ed052dea4a8f.bundle.js:1) 在n(inline.929671279f1ce76b75d9.bundle.js:1) 在Object.cDNt(main.df67f626aab78f9b8645.bundle.js:1) 在n(inline.929671279f1ce76b75d9.bundle.js:1) 在Object.0(main.df67f626aab78f9b8645.bundle.js:1) 在n(inline.929671279f1ce76b75d9.bundle.js:1) 在window.webpackJsonp(inline.929671279f1ce76b75d9.bundle.js:1) 在main.df67f626aab78f9b8645.bundle.js:1“
这是一个新问题,过去曾经起作用。
我尝试通过添加--build-optimizer = false来禁用uglify:
ng build --prod --base-href=/backoffice/ --build-optimizer=false
根据这些文档: https://github.com/angular/angular-cli/wiki/1-x-build
似乎对构建结果的影响为零。
将项目升级到最新的角度版本真是太神奇了,但是它是建立在一个模板之上的,该模板具有我不熟悉的许多依赖关系,这些依赖关系无疑得到了适当的维护。在那些依赖项出错了几个小时之后,我放弃了这个方向。
答案 0 :(得分:2)
尝试使用以下cmd禁用AOT:
ng build --prod --base-href=/backoffice/ --aot=false
这是我认为值得尝试的一种方式。
正如我的亲身经历告诉我,每当Angular出现生产构建错误时,它与AOT的相关性就高达95%。
对于这个古老的Angular 2项目,我想您不必坚持下去,因为它毕竟是一个非常古老的项目。