Angular 更新 10 → 12 的各种事件记录
在某个项目中,我在进行Angular 10 → 12的更新时遇到了一些问题,所以我将其记录下来作为备忘录。
大致环境
Angular 10 升级至 12
Node.js 12.10 升级至 12.22
TypeScript 3 升级至 4
webpack 4 升级至 5
… 其他相关更新
在中文中,只需要一种选择:
条件
将Angular的构建工具更改为angular-builders/custom-webpack。
正宗的版本升级支持
随着Angular的升级,需要调整依赖关系,包括Node.js的最低版本升级等,并进行与TypeScript升级相关的现有源代码微调等。到目前为止都还好,但是…
Webpack 5的陷阱
在这个Angular项目中,我们没有直接使用webpack,但是Angular使用的一些包,如custom-webpack,依赖于webpack,并且已经从webpack 4升级到了webpack 5。结果是,屏幕变成了一片白色。
调整polyfill。
由于在过去的开发中完全没有考虑到webpack的存在,因此我陷入了原因诊断的困境。
对于下面的文章,非常感谢您的帮助 ?♂️
https://blog.hiroppy.me/entry/webpack5
取消了对Node.js的polyfill的自动插入。
是的,謝謝Node.js,對之前的麻煩表示歉意。
根據以下參考,我找到了我們現有代碼中使用的polyfill。
https://github.com/webpack/node-libs-browser
看起來在util、process之類的地方出現了錯誤,所以我添加了它們到polifills.ts中,問題順利解決了… 在Chrome中。
IE 11的暗黑模式支持
(心の声)
哎呀,还在使用IE 11,这已经是很短的后来了,而且Angular 12已经不推荐使用IE了。
以前就已经暴露出IE上渲染组件(例如 nz-zorro)的响应慢的问题了,我们不要再无谓地争论下去了。
在这样想的同时,我还是勇敢地进行了调查和处理。
总结起来(幸运地),只需在polyfills.ts中添加core-js,就能顺利运行了。
(由于polyfills.ts的编写不好(例如使用require而不是import)导致与zone.js发生冲突,但最终成功解决了)
我认为在升级到Angular 13并支持IE是(真的)很困难的!!!!
结论是
让IE安心入眠吧。
感谢您阅读这篇冗长的文章,一直看到最后。祝您开发顺利!?