旧的Angular 2项目-成功的生产版本存在javascript运行时错误

时间:2018-09-24 15:57:43

标签: angular

我有一个相当老的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

似乎对构建结果的影响为零。

将项目升级到最新的角度版本真是太神奇了,但是它是建立在一个模板之上的,该模板具有我不熟悉的许多依赖关系,这些依赖关系无疑得到了适当的维护。在那些依赖项出错了几个小时之后,我放弃了这个方向。

1 个答案:

答案 0 :(得分:2)

尝试使用以下cmd禁用AOT:

ng build --prod --base-href=/backoffice/ --aot=false

这是我认为值得尝试的一种方式。

正如我的亲身经历告诉我,每当Angular出现生产构建错误时,它与AOT的相关性就高达95%。

对于这个古老的Angular 2项目,我想您不必坚持下去,因为它毕竟是一个非常古老的项目。