首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在环境中将生产设置为true时,“ng build”是否使用AOT编译?

在环境中将生产设置为true时,“ng build”是否使用AOT编译?
EN

Stack Overflow用户
提问于 2017-06-13 09:41:27
回答 2查看 3.2K关注 0票数 4

我的理解是,在ng构建过程中,默认使用AOT编译,并且只有在开发中(ng服务)才需要设置--aot标志。

但是现在,我面前有一个项目,它在多个位置使用来自@角/编译器的类和方法。尽管如此,“ng build”与生产的结果:在环境中是正确的,没有任何失败,并且似乎知道编译器。但是,如果我使用“ng serve -aot”,则会收到预期的“未加载错误:未加载运行时编译器”。

那是怎么回事?默认情况下是否使用AOT。

顺便说一句:该项目使用的是角版本^4.0.0。

编辑

@Melou和PierreDuc告诉我我错了:ng build --prodng build -e prod不一样。环境中的生产设置不会更改编译过程。--prod还设置--target=production,这将触发AOT编译。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-06-13 10:17:15

默认情况下,不使用 command来使用AOT。仅当您添加--prod参数时。这将将--target设置为生产,启用AOT并禁用源代码映射:

代码语言:javascript
复制
# these are equivalent
ng build --target=production --environment=prod
ng build --prod --env=prod
ng build --prod
票数 4
EN

Stack Overflow用户

发布于 2017-06-13 10:12:16

如果使用角4.0.0,则必须处于角-cli> 1.0.0,默认情况下在prod模式下使用aot。

角-cli取代部分代码使其工作。

例如,在您的main.ts中,您使用bootstrapModule,它被bootstrapModuleFactory取代。

如果您检查生成的dist/main.xxxx.bundle.js(例如,使用grep grep bootstrapModuleFactory main.xxxxx.bundle.js之类的工具),您将看到对bootstrapModuleFactory的调用。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44517805

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档