我有一个愚蠢的问题。我想知道如何加快我的应用程序。在大多数情况下,流行的是在构建期间使用--prod
标志。但我也找到了一个建议,以启用Angular生产模式
enableProdMode();
中的main.ts
。这些行为是否相同并触发相同的机制?
答案 0 :(得分:2)
--prod
标志触发--environment=prod
标志(以及其他内容)。这意味着在编译期间使用prod
environments
数组中定义为.angular-cli.json
的环境文件。
如果你有默认的main.ts
,这确实意味着它会运行enabledProdMode()
。因为他们用它来触发它:
if (environment.production) {
enableProdMode();
}
并在环境文件中production
属性设置为true
。
答案 1 :(得分:0)
但是请记住,如果您执行以下操作:
ng build --env=dev --prod
然后,生产环境羡慕的标志将被覆盖。我检查了它,因为尽管在非prod envy上使用了--prod标志,但我仍然遇到性能问题。在构建演示,基准测试构建等时,这一点很重要。
答案 2 :(得分:0)
ng build --prod
是ng build --configuration=production
的简写。在此过程中,构建过程将引用您的angular.json
文件,在这种情况下,尤其是“配置”部分:
"configurations": {
"production": {
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.prod.ts"
}
],
...
在environment.prod.ts中为以下内容(默认情况下):
export const environment = {
production: true
};
如果您随后查看自己的main.ts
文件,则会看到以下代码(同样,默认情况下):
if (environment.production) {
enableProdMode();
}
因此,如您所见,ng build --prod
将启用产品模式。启用prod模式将禁用某些验证,从而加快了代码的速度。使用生产配置运行时,附加的构建过程还将执行以下操作(同样,默认情况下):