node14 升级 node16 后 vue2 项目中 sass 报错问题

发布时间 2023-08-07 14:43:13作者: 龙果果

起因

不知道因为个什么手贱把之前的 node14 版本卸载了去官网重新下载安装了一下 node,最近版本升级到了 node16,以为应该不会有什么问题吧,结果把项目一跑,我勒个去,一堆飘红的,看控制台提示主要是这个 node-sass 报的错。

 

 

# 卸载
npm uninstall node-sass sass-loader
# 重新安装 
npm i sass-loader sass -D

npm install -D sass-loader@^10 sass

 

按照官方的说法,需要安装 10.x 版本的 sass-loader 以配合 webpack4,并卸载被 node16 抛弃的 node-sass ,取而代之安装 sass 即可解决问题。

等等,可能还没完,如果你项目中有用 /deep/ 选择器可能还会报一个 SassError: expected selector. 的问题,比如我这个大冤种全都是使用 /deep/ 来更改 element-ui 中的样式,这时候需要将 /deep/ 替换成 ::v-deep:

/* 报错: */
/deep/ .el-drawer__header {
	padding: 0;
    margin: 0;
}

/* 修改后解决: */
::v-deep .el-drawer__header {
	padding: 0;
    margin: 0;
}

 

简单升级一下 node 版本带来这么多坑可真简单啊!