angular 8 webpack-bundle-analyzer 寻找错误的 polyfill 文件

Posted

技术标签:

【中文标题】angular 8 webpack-bundle-analyzer 寻找错误的 polyfill 文件【英文标题】:angular 8 webpack-bundle-analyzer looking for wrong polyfill files 【发布时间】:2020-02-20 14:43:50 【问题描述】:

无论我做什么,在构建我的项目后,我都会收到以下错误:

Error parsing bundle asset "<path-to-project>\polyfills-es5-es2015.e1bdcd70857e70f37509.js": no such file
events.js:174

看到我的项目创建了一个polyfills-es5.e1bdcd70857e70f37509 文件和一个polyfills-es2015.25bfed26497f24d6d1d7 文件,这完全正确。

这是在我昨天创建的一个 nx 工作区项目中

每次构建后,文件名明显改变,但它一直在寻找混合的 es5-es2015 polyfills 文件。

stats 文件被创建为stats-es2015.json,我们的 package.json 设置为:"bundle-report": "webpack-bundle-analyzer dist/apps/&lt;project-name&gt;/stats-es2015.json"

我不断收到default build 或production 的错误,启用或禁用ivy,我尝试删除es5BrowserSupport 标志,希望只有一个polyfills 文件,但它是仍在寻找es5-es2015 文件...

【问题讨论】:

【参考方案1】:

试试这个命令,看看它是否适合你

ng build --prod --stats-json && webpack-bundle-analyzer dist/stats.json

我的 tsconfig.json

    "module": "esNext",
    "target": "es5",

【讨论】:

嗨,这似乎确实有效,谢谢。模块已经是esNext,您能否详细说明将目标从es2015 更改为es5 的后果?有没有办法让它与 target = es2015 一起使用 @AlfaBravo 它也可以,我自己试试。也请投票给我的答案。谢谢 小心...如果您将目标es2015 更改为es5,那么您将增加捆绑包大小!【参考方案2】:

我还可以补充一点,我认为最终我的解决方案只是简单地关闭我所有的 vsCode 窗口。

当我打开 vsCode 时,我会收到 polyfills-es5-es2015.&lt;whatever&gt;.js": no such file 错误,但是当我关闭 vsCode 并运行完全相同的命令时,它可以工作...

我认为这可能与 vsCode 中的 angular ui 插件有关,该插件也有某种捆绑工具,使用与 wba 相同的端口。所以它实际上与我没有找到多边形文件无关,但是当 wba 端口正在使用时它仍然会给出那个错误......

PS:我在检查该端口是否确实在我的机器上使用时发现了这一点,并且它表明它正在被 vsCode 使用,因此 vsCode 中的某些东西正在使用它并且关闭 vsCode 为我解决了错误。 .

【讨论】:

以上是关于angular 8 webpack-bundle-analyzer 寻找错误的 polyfill 文件的主要内容,如果未能解决你的问题,请参考以下文章

安装nodejs后无法安装@angular/cli@9.1.8

Angular 6 Docker Build - Angular 编译器中的错误需要 TypeScript >=2.7.2 和 <2.8.0,但找到的是 2.8.3

从 Angular js 升级到 Angular 8 的指令

Angular 8 和 Angular 材质:使用 CdkDropList 项拖动滚动

单元测试混合 Angular Js 和 Angular 8 应用程序

启动时出现 Angular 8 错误