ng build 生成不同的输出

ng build generating different outputs

全部,

我需要部署两个 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 版本

Angular CLI:11.1.4 节点:12.22.1

任何线索将不胜感激!

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

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

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

f.e.

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

可以在 https://angular.io/cli/serve

上找到更多信息