"enableProdMode()"和"build --prod"等价吗?



我有一个愚蠢的问题。我想知道加快应用程序的方法。在大多数情况下,流行的是在构建过程中使用--prod标志。但我也找到了一个建议,可以通过 enableProdMode();中的main.ts。这些动作相同并触发相同的机制吗?

--prod标志触发 --environment=prod标志(除其他外(。这意味着在汇编过程中使用.angular-cli.jsonenvironments数组中定义为prod的环境文件。

如果您有默认的main.ts,这确实意味着它运行enabledProdMode()。因为他们使用它来触发它:

if (environment.production) {
    enableProdMode();
}

和在环境文件中production属性设置为true

ng build --prodng 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

相关内容

  • 没有找到相关文章

最新更新