node升级后,打包项目报node-sass错误的解决办法

在node官网下载时官方会推荐16.x的版本,安装完对电脑上已有项目进行打包,会报webpack、node-sass、sass-loader等依赖版本冲突;根据node-sass官网的说法,不同的node版本需要安装不同的node-sass版本,并且node-sass已经废弃,推荐使用Dart Sasst替代,Dart Sass在npm中的包名就是sass;

1.卸载原有的node-sass与sass-loader

npm uninstall node-sass sass-loader

2.升级项目所有安装的依赖

npm update

3.安装sass-loader(10.x版本)与sass(我的webpack版本是5.10.0)

npm install -D sass-loader@^10 sass

4.再次打包会报错Error: SassError: expected selector;

这是因为项目中样式有用 /deep/ ;如果使用 less 对 css 做出预处理的话,使用 /deep/ 就可以完成样式穿透的行为;如果使用的 scss 对 css 做出的预处理,不能够使用 /deep/ 而应该使用 ::v-deep 才对,于是我便用 ::v-deep 替换了 /deep/ 就解决了这个问题。

5.再次npm run  dev 解决了问题。

上一篇:修改Ubuntu默认apt下载源


下一篇:基于Qt环境下开发的日志log打印