我有一个愚蠢的问题。我想知道加快应用程序的方法。在大多数情况下,流行的是在构建过程中使用--prod
标志。但我也找到了一个建议,可以通过 enableProdMode();
中的main.ts
。这些动作相同并触发相同的机制吗?
--prod
标志触发 --environment=prod
标志(除其他外(。这意味着在汇编过程中使用.angular-cli.json
的environments
数组中定义为prod
的环境文件。
如果您有默认的main.ts
,这确实意味着它运行enabledProdMode()
。因为他们使用它来触发它:
if (environment.production) {
enableProdMode();
}
和在环境文件中production
属性设置为true
。
ng build --prod
是ng build --configuration=production
的速记。为此,构建过程将引用您的angular.json
文件,特别是在这种情况下"配置"部分:
"configurations": {
"production": {
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.prod.ts"
}
],
...
in Envigith.prod.ts是以下(默认情况下(:
export const environment = {
production: true
};
如果然后查看您的main.ts
文件,您将看到此代码(默认情况下(:
if (environment.production) {
enableProdMode();
}
因此,您可以看到ng build --prod
将启用产品模式。启用产品模式将禁用一些验证,从而加快您的代码。使用生产配置运行时的其他构建过程也将执行以下操作(默认情况下,默认情况下(:
- 提前(AOT(编译:预编译角组件模板。
- 生产模式:部署启用生产模式的生产环境。
- 捆绑:将您的许多应用程序和库文件串成几包。
- 缩小:删除多余的空格,评论和可选令牌。
- uglification:重写代码以使用简短,隐秘的变量和功能名称。
- 消除代码消除:删除未引用的模块和许多未使用的代码。
源
,但请记住,如果您做这样的事情:
ng build --env=dev --prod
然后,嫉妒的标志将被覆盖。我检查了它,因为尽管在非产品嫉妒上使用了prod标志,但我仍然在性能方面遇到问题。这在构建演示,基准构建等时很重要。
so,一次澄清。
启蒙文章
https://dev.to/this-is-angular/angular/angular-15-what-whate-happened-to-environmentts-koh