Angular-CLI v6: --no-aot 构建选项等效

Angular-CLI v6: --no-aot build option equivalent

我最近从与 Angular-CLI v1.7.4 合作的 Angular v5.2.4 升级到与 Angular-CLI v6.0.8 合作的 Angular v6.0.3 .

由于使用动态组件,我的项目需要 JIT 编译器。结果我的构建脚本变成了:ng build --prod --no-aot

我需要继续使用 --prod 标志来保留 tree shaking、代码缩小和死代码消除的好处。但是,默认情况下 --prod 启用 AOT。 --no-aot 选项曾经是禁用 AOT 的解决方案,但仍然可以获得 --prod 构建的好处。

我尝试了以下选项,如您所见,没有构建成功(标准 --prod 构建除外)。我也没有从 CLI 返回任何信息,这不是很有帮助:

我已通读 Official Angular Deployment Docs as well as the Official Angular-CLI build Wiki,但未找到任何有助于解决此问题的信息。

有谁知道 --no-aot 选项的替代品是什么,或者在禁用 AOT 时进行 --prod 构建的新方法?

要从命令行执行此操作,请使用以下选项以及 --prod 选项。

--aot=false --build-optimizer=false

完整命令:

ng b --prod --aot=false --build-optimizer=false

如果您不想每次都在命令行上执行此操作,您可以在 angular.json.

中更改生产构建选项

文件中的以下路径

projects/your-project/achitect/build/configurations/production

aotbuildOptimizer 选项更改为 false。然后,您可以从命令行简单地 运行 ng b --prod,您将获得不包含 aotbuild-optimizer 选项的生产版本。

--prod 构建选项已弃用。下面在更新的命令中。

ng b -c production --aot=false --build-optimizer=false

你可以试试这个:

ng build --prod --aot=false --build-optimizer=false

在 .npmrc 文件中

legacy-peer-deps = true

命令提示符

npm install 

或者

npm config set legacy-peer-deps true
npm install