從 HBuilderX 4.56+ ,vue2 項目也將默認使用 dart-sass 預編譯器。
vue2開發者sass預處理注意:
sass的預處理器,早年使用node-sass,也就是vue2最初默認的編譯器。
sass官方推出了dart-sass來替代。node-sass已經停維很久了。
另外node-sass不支持arm cpu,也即Apple的M系列CPU,導致HBuilderX的arm版只能使用dart-sass。
node-sass有些淘汰的寫法,在dart-sass里已不再支持。
所以開發者在從vue2升vue3時,使用HBuilderX arm版時,會發現老的vue2項目如果寫了廢棄scss語法,會編譯報錯。
DCloud推薦開發者盡快升級到vue3,改用dart-sass。
vue3默認使用的是dart-sass。
解決方案1:
調整為dart-sass支持的語法。文檔里提到要把/deep/換成::v-deep。那應該直接替換就行了吧。比如原來的寫法是
// 修改前
/deep/ .uni-card__content {padding: 0;
}// 修改后
::v-deep .uni-card__content {padding: 0;
}
解決方案2:
如果您希望繼續使用node-sass,您可以在 manifest.json 中配置 "sassImplementationName": "node-sass",