🎋 竹子日誌

Webpack升版(一)

近期舊專案要幫 webpack 升級,從4升到5,以往升級其實還沒遇過這麼大的專案要升版,但這一次我真的碰壁了。龐大而複雜的架構與依賴讓我極難修復各種問題。

從升級的方式,因原先是用 Vue-cli 去建構的專案,首先要找到它提供的升級的介面,而非是強升內部依賴或是建構新專案設定來遷移。

第二個問題就是 node.js 的版本問題,要進行升班指令時,依據 node 版本不同,指令依賴也有點差異,首先還是要先以舊版本的 node 為主。但遇到模組不相容時,就需要另外安裝 polyfill 去支援。因為 webpack 內部處理 4和5遇到不支援介面時4會預設處理部分的模組,升級後有些預設就不支援了,當版本過舊時就要去 reslove 去關閉對原生模組的取用,改以 webpck-polyfill-plugin 去執行。雖然有人使用原生模組直接介接的方式,但我執行時似乎不管用⋯⋯

接下來遇到的是ts 錯誤噴到一個崩潰的程度,主要原因是過去專案的撰寫方式不符合新的 TS 標準,導致新的 TS 檢查出問題,因為專案太過於巨大,我選擇想辦法關掉檢查。但這才是問題開始⋯⋯你可能覺得是關 lintOnSave或是ESLint,但答案都不是⋯⋯

留言