node-sass报错的坑
前几天在拉取项目,跑项目的时候遇到了一个node-sass的坑,我在使用yarn进行安装依赖的时候,报了node_modules\node sass:Command failed.
的错误。
从报错命令来看,就是在安装node sass模块的时候出错了,导致安装失败。
node-sass是什么?
Node-sass是一个库,它将Node.js绑定到LibSass(流行样式表预处理器Sass的C版本)。它允许用户以令人难以置信的速度将.scss文件本地编译为css,并通过连接中间件自动编译。说白了 node-sass是一个项目依赖,在使用sass语法的时候,对sass-loader的一个支持,没有node-sass,sass-loader不能正常工作。
解决过程
虽然知道了node-sass是什么东西,但还是不知道怎么解决。由于原项目中已经有了node-sass依赖,我猜测会不会是node-sass的版本有问题。(原项目中node-sass版本为4.12.0)。于是我安装了最新版本的node-sass(版本号为5.0.0)。
重新安装完之后,好像是没有问题,但是跑项目的时候,就报了sass文件的错误了。
于是我去谷歌了一番,试了一下上面的方法,试了许久还是没用。
忽然我看到一条评论,The solution was to use Node below version 15.0.1. 忽然发现有可能是node版本的问题,因为我装的是最新的node版本,版本号为15.2.0。
大概问题原因
node不同版本对应支持node-sass模块的版本不同,具体看下表。
但是因为我之前的node版本是15+,然后我自己装的node-sass最新版本是5.0.0,按道理说应该能够完美解决,可是跑项目的时候还是有报错,后面又去github上找了一下,有评论说有可能是node最新版本有bug所以无法解决。
最终解决办法
降低node版本,由原先的15.2.0降低至14.15.0,项目跑起来没问题,成功解决。
参考文档:
1.https://github.com/sass/node-sass
2.https://www.cnblogs.com/yujiao-99/p/12586310.html