node-sass 安装失败的解决办法

2,781 阅读3分钟

node-sass 是什么

Node-sass是一个库,它将Node.js绑定到LibSass(流行样式表预处理器Sass的C版本)。它允许用户以令人难以置信的速度将.scss文件本地编译为css,并通过连接中间件自动编译。

说得直白一点就是,如果你想在项目中很好的使用sass等css预处理器,是必须要安装node-sass的。

不过好玩的是,现在官方已经不建议使用node-sass了,而是推荐使用Dart Sass:sass-lang.com/dart-sass 。感兴趣的小伙伴可以了解一下。

不过我们现在还是把关注点放在node-sass上。

node-sass安装过程中可能遇到的错误,及其解决办法

当我们在执行 npm install 或者 npm i node-sass的时候,可能会遇到一些问题,这个时候我们要仔细查看报错信息的内容,根据报错信息,进行解决。这里列出一个我遇到过的错误信息及其解决方案。

错误信息:\win32-x64-72\binding.node is not a valid Win32 application.

错误信息中提示:该binding文件不是一个合法的Win32应用程序,我们可以理解成该文件不能使用,需要尽心更换。但是要怎么更换呢?

通过错误信息中的提示,该文件位于项目的node_mudoles文件夹下,这个文件夹是安装依赖包自动新建的,我们不好去修改它下面的文件,所以如果要修改binding文件,就首先需要修改它的引用路径。

通过上图中的路径信息,我们知道在C盘下的这个文件夹下,有对应的binding文件,我们可以去修改这个文件夹。这时,在你需要安装node-sass的目录下新建一个 .npmrc文件,在里面输入该配置信息:

# xxx 是你电脑中的用户名,6.0.1是你安装的node-sass版本,要根据实际情况进行修改
SASS_BINARY_DIR=C:\Users\xxx\AppData\Roaming\npm-cache\node-sass\6.0.1

.npmrc文件配置完成之后,再次尝试安装node-sass包,你可能会遇到这个错误

上图中提示,修改路径后的binding文件,依然不是一个合法的Win32应用程序,我认为这是node-sass比较坑的一个地方。不过不用担心,继续往下阅读,我马上会给出解决方案。

首先错误根据,打开这个文件夹,后面我们要往这个文件夹中复制新的binding文件。

我们要知道,node-sass目前有很多版本,最新版本是6.0.1,不同版本的node-sass支持不同版本的node,这一点我们可以在官方的Github中进行查看:github.com/sass/node-s…

根据你电脑本地的node版本,确定要安装的node-sass版本,然后去上面的Github页面中下载对应的binding文件。

每一个版本都会提供很多binding文件,这里一定要根据错误信息的提示下载正确的文件。在上面的错误信息提示中,我们可以看到使用的是win32-x64-72版本的binding文件,所以这要下载下图中的这个文件。

文件下载完成之后,把它复制到上面打开的文件夹中,把名字改为binding.node,替换该文件夹下的binding.node文件。

这个之后再次进行安装node-sass包,就可以顺利成功了。

如果你不想为每一个项目都配置一个 .npmrc 文件,可以使用以下命令,设置一下npm的全局配置参数:

# 参数的值,要根据你电脑的真实路径进行设置
npm config set SASS_BINARY_DIR="C:\Users\xxxx\AppData\Roaming\npm-cache\node-sass\6.0.1"

node-sass的其他错误

在安装node-sass的时候,可能还会遇到其他的问题和坑,如果你遇到的话,欢迎大家把错误信息分享出来,我们一起解决。