记一次sass-loader深坑

众所周知sass-loader需要依赖node-sass,但是往往版本对不上号,排查过程如下

1. 检查node版本

node -v
node-sass的页面有对应的版本

NodeJS Supported node-sass version Node Module
Node 17 7.0+ 102
Node 16 6.0+ 93
Node 15 5.0+, <7.0 88
Node 14 4.14+ 83
Node 13 4.13+, <5.0 79
Node 12 4.12+ 72
Node 11 4.10+, <5.0 67
Node 10 4.9+, <6.0 64
Node 8 4.5.3+, <5.0 57
Node <8 <5.0 <57

2. 安装对应版本的node-sass或者node

安装node-sass

npm i -D node-sass@对应版本

或者切换node版本

nvm use 12.1.0使用nvm切换对应node支持版本

3. 然后是sass-loader对应node-sass版本

sass-loader node-sass
sass-loader 4.1.1 node-sass 4.3.0
sass-loader 7.0.3 node-sass 4.7.2
sass-loader 7.3.1 node-sass 4.7.2
sass-loader 7.3.1 node-sass 4.14.1
sass-loader 10.0.1 node-sass 6.0.1

npm i -D sass-loader@对应版本

4. 接下来是最玄学的部分

如果你卡在中间位置,那怎么办。
假如node-sass版本4.12.1,那么sass-loader应该是7.3.1。
此时应该是能install成功的了,接下来就运行
如果运行报错,上下加减版本号,随机组合一下。