【问题标题】:ng build generating different outputsng build 生成不同的输出
【发布时间】:2021-08-17 01:00:21
【问题描述】:

全部,

我需要部署两个 Angular 项目。两者都在本地构建良好并显示索引页面。当我部署到 kubernetes 时,一个应用程序抱怨它找不到 runtime.js、polyfills.js、styles.js、vendor.js 和 main.js,而另一个应用程序工作正常。

我查看了两个应用程序的 /dist 文件夹。有效的应用程序在 /dist 文件夹中有以下内容。 main.js polyfills.js runtime.js scripts.js vendor.js

失败的应用程序有以下文件

main-es2015.js main-es5.js polyfills-es2015.js polyfills-es5.js runtime-es2015.js runtime-es5.js styles-es2015.js styles-es5.js vendor-es2015.js vendor-es5.js

我有几个问题

  1. 为什么 ng build 生成了不同的文件。我阅读了许多帖子。与 ng build 相比,似乎 ng build --watch 生成了不同的文件。但我没有使用 ng build --watch。
  2. 为什么我的 es5 和 es2015 应用程序在本地工作,但部署到 kubernetes 时失败?

我正在使用以下角度版本

Angular CLI:11.1.4 节点:12.22.1

任何线索将不胜感激!

【问题讨论】:

    标签: angular angular-cli


    【解决方案1】:

    在创建 -2015 的项目中,您正在调用 differential loading 的 -es5 捆绑文件,这意味着在 browserslist 文件中您可能支持较旧的浏览器,并且在您的 tsconfig.json 文件中的 compilerOptions 您的target 可能是 es2015(又名 es6),但编译器认为它需要支持 IE 等较旧的 es5 浏览器。因此它会相应地生成捆绑包以支持 es2015(又名 es6)和 es5。

    至于您的部署问题的具体细节,您的流程中可能需要更多详细信息,但希望这会有所帮助。干杯

    【讨论】:

    • 你是对的。我的 .browserslistrc 有以下内容 ``` > 0.5% last 2 versions Firefox ESR not dead not IE 9-11 # 对于 IE 9-11 支持,删除 'not'。 ``` 更新文件解决了这个问题
    【解决方案2】:

    我认为您需要serve-path。 如果未提供,应用程序将查找应用程序的根目录。

    f.e.

    • my.website.com/test 需要 --serve-path=test
    • my.website.com 不需要serve-path

    更多信息请访问https://angular.io/cli/serve

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-09-29
      • 2018-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-16
      相关资源
      最近更新 更多