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/<project-name>/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.<whatever>.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 项拖动滚动