node-sass生產環境編譯報錯

Jade_g發表於2024-03-12
 "node-sass": "^4.12.0",
 "sass-loader": "^8.0.2",

本地和local環境正常,pre和生產環境編譯報錯

local、pre、生產的編譯環境一樣,node版本都是14.16.1。複製本地node_modules資料夾到pre同樣報錯。

應該是node-sass和node的版本問題,但是又找不到問題,最後沒辦法把node-sass換成了sass

1、node-sass換成sass

"sass-loader": "^10.5.2",
"sass": "^1.55.0",

2、全域性替換 /deep/ => ::v-deep

3、element相容問題

"element-ui": "^2.15.13",
element這個版本會報錯,有一些相容問題
npm install -g sass-migrator
sass-migrator division ./node_modules/element-ui/packages/theme-chalk/src/*.scss  

//或者安裝到專案裡
npm install -D sass-migrator
./node_modules/.bin/sass-migrator division ./node_modules/element-ui/packages/theme-chalk/src/*.scss  

修改element-ui的包,但是其他人拉下來還是未修改的包,所以用到了 patch-package

npm install -D patch-package

然後在package.json中scripts加上,npm install的時候自動為依賴包打上我們改過的依賴

"postinstall": "patch-package"
 ./node_modules/.bin/patch-package element-ui 

會比較本地包做了哪些修改,並在patches下生成一個包,這個包會透過git提交上去

相關文章