nodejs 升級到最新版本,依然兼容vue2的項目

起因

起因是我要有一個老的vue2 + iview的項目,幾年前的,一直在開發(fā)和維護,也不大可能轉(zhuǎn)到vue3 ,然后新開發(fā)的項目都是vue3開發(fā)的,于是我之前費了一些功夫,把vue2的項目兼容度提高,支持到14版本的,然后去掉一些插件,逐漸換成只了支持16,后面就一直卡著不動了。今天升級vue3的某些插件的時候,終于打破了平衡,新的插件,16 版本nodejs 已經(jīng)不支持了,要升級到18版本才行,但是vue2項目就不行了,怎么都啟動成功。

找到原因

經(jīng)過多次測試,和通過AI分析,總結(jié)的是 由于 Node.js 18 對 OpenSSL 3 的默認配置更嚴格導(dǎo)致的,主要影響了 Webpack 等工具的哈希算法使用。

解決辦法

AI提供了很多解決辦法,但是最簡單的辦法就是這個:
1.安裝跨環(huán)境命令
npm install cross-env --save-dev
2.修改 package.json 把scripts中,所有 vue-cli-service 命令前面加上
cross-env NODE_OPTIONS=--openssl-legacy-provider
示例:啟動和編譯
"serve":"cross-env NODE_OPTIONS=--openssl-legacy-provider vue-cli-service serve --open"
"build":"cross-env NODE_OPTIONS=--openssl-legacy-provider vue-cli-service serve build"

這樣項目就可以用nodejs 最新版本打包和運行了

build 的告警信息

build 項目的時候,會有告警信息,類似這樣:

[buildVueCli  ] Browserslist: caniuse-lite is outdated. Please run:
[buildVueCli  ]   npx update-browserslist-db@latest

按照要求執(zhí)行這個命令即可:

npx update-browserslist-db@latest
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容