旧的 Angular 2 项目 - 成功的生产构建存在 JavaScript 运行时错误



我有一个很旧的 Angular 2 项目。Angular CLI 1.3.1(而目前的最新版本是6.2.3(。

我可以成功地构建用于开发和生产的项目。

开发运行良好。

生产版本有javascript运行时错误,似乎是由于糟糕的丑化:

"未捕获的类型错误:无法读取未定义的属性'a' at Object.oxwE (vendor.a1c77430ed052dea4a8f.bundle.js:1( 在 n (inline.929671279f1ce76b75d9.bundle.js:1( at Object.+nms (vendor.a1c77430ed052dea4a8f.bundle.js:1( 在 n (inline.929671279f1ce76b75d9.bundle.js:1( at Object.cDNt (main.df67f626aab78f9b8645.bundle.js:1( 在 n (inline.929671279f1ce76b75d9.bundle.js:1( at Object.0 (main.df67f626aab78f9b8645.bundle.js:1( 在 n (inline.929671279f1ce76b75d9.bundle.js:1( at window.webpackJsonp (inline.929671279f1ce76b75d9.bundle.js:1( at main.df67f626aab78f9b8645.bundle.js:1">

这是一个新问题,它过去曾经工作过。

我试图通过添加 --build-optimizer=false 来禁用丑陋:

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

根据这些文档: https://github.com/angular/angular-cli/wiki/1-x-build

它似乎对构建结果没有影响。

将项目升级到最新的 angular 版本会很棒,但它是建立在模板之上的,该模板有许多我不熟悉的依赖项,这些依赖项没有得到适当的维护。在对这些依赖项错误几个小时后,我放弃了这个方向。

尝试使用以下 cmd 禁用 AOT:

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

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

正如我的个人经验告诉我的那样,每次 Angular 出现生产构建错误时,它都与 AOT 相关。

对于这个遗留的 Angular 2 项目,我想你不必坚持下去,因为它无论如何都是一个非常古老的项目。

最新更新