Lastor
coding 吐了,前幾天嘗試完 rails/webpacker 遷移至 nodejs webpack4。現在直接挑戰最終目標,遷移到 vite
Lastor
很理所當然會有一堆問題,只是弄一弄就突然在想......
Lastor
為啥我不一開始就直接 try vite,我太保守了。原本研究 webpack4 的內容,現在換 vite 狀況根本完全不一樣
Lastor
嘛...... 不過有好有壞啦,因為我先 try 了 webpack4 從零重架,所以對於這專案有些啥,稍微了解了一遍
Lastor
因此也比較能判斷改到 vite 可能會出現啥問題,甚麼東西需要搬,甚麼東西可以砍了
Lastor
目前確認一些有趣的限制,webpack4 最高只能對應到 node16,再往上就只能用 webpack5
Lastor
vite 當前最低支援到 node12,而我們專案原本是 node10,被強迫要升級了
Lastor
不過最初要弄這個的核心目的,就是想要升級 node 版本就是,因為很多用 Mac M1 的同事,紛紛出現 node10 裝不上去的問題
Lastor
估計再過 1 ~ 2 年,Mac intel CPU 被全面淘汰之後,會變成沒有人的電腦打得開這專案了
Lastor
原本 webpack + node10 環境,很難升的原因,大多都出在 node-sass 這玩意,還有一堆 xxx-loader 以及 babel 的東西,都卡版本,要升 node 都得更新或換掉
Lastor
但是直上 vite 的話,這些 xxx-loader 跟 babel 其實大部分是直接不需要了
Lastor
vite 也開箱支持新的 sass,所以 node-sass 也可以砍了
Lastor
也就是說,要遷移 vite,其實升 node 版本反而是很簡單的,所以我前幾天都在白忙甚麼
Lastor
然而,換裝 vite 之後有完全不一樣的問題
Lastor
例如原本 webpack 環境有寫 requre() 或 require.context 的地方全都要改
Lastor
CommonJS 的要改成 ESM
Lastor
還有 process.env 這些調用,也得改.... 很多問題
Lastor
最姬芭的是,原本這專案居然有一塊使用到 nodejs 的模塊,甚麼 file 那些東西。這種 vite 直接死,完全沒辦法 import
Lastor
幸好追了一下專案內有用到這些的檔案,似乎都已經棄用,只是 code 還著而已,所以可以先不鳥她。不然我真的要吐了
Lastor
更正,已經吐了。原本搜尋到有引入 nodejs 模塊的時候,我是充滿絕望的,似乎一切都白幹了。還好追了一下,其實沒有引用到
Lastor
這個如果我成功搞定,去要求個加薪應該不過分吧