在网上看到了很多人在安装node-sass的时候遇到了难以安装的问题,网上给出的解决办法也有很多。这里给总结下,主要原因有以下三种:
1.Node.js与node-sass的版本冲突
打开node-sass的介绍https://www.npmjs.com/package/node-sass。Node 8需要的node-sass版本是4.5.3+,Node 10需要的node-sass版本是4.9++,确认工程中依赖的node-sass版本和Node.js版本是否冲突。
NodeJS | Minimum node-sass version | Node Module |
---|---|---|
Node 13 | 4.13+ | 79 |
Node 12 | 4.12+ | 72 |
Node 11 | 4.10+ | 67 |
Node 10 | 4.9+ | 64 |
Node 8 | 4.5.3+ | 57 |
2.没有安装node-gyp先决条件
以下是https://www.npmjs.com/package/node-sass文档中的部分内容:
Install
npm install node-sass
Compiling on Windows machines requires the node-gyp prerequisites.(安装node-sass必须先安装node-gyp)
Are you seeing the following error? Check out our Troubleshooting guide.
SyntaxError: Use of const in strict mode.
Having installation troubles? Check out our Troubleshooting guide.
3.无法下载win32-x64-x_binding.node文件
很多人遇到如下图所示的错误,无法下载win32-x64-x_binding.node。
官方文档已经说明,先设置国内的镜像再进行安装:
Install from mirror in China
npm install -g mirror-config-china --registry=http://registry.npm.taobao.org npm install node-sass
也可以按以下命令进行安装(见Troubleshooting guide):
npm config set sass_binary_site https://npm.taobao.org/mirrors/node-sass
npm install node-sass
另外,国内安装一些npm工具时,常常遇到类似无法下载其依赖文件的问题,可以统一使用cnpm进行安装:
rem 安装淘宝定制的cnpm命令
npm install --global cnpm
rem 使用cnpm命令进行安装
cnpm install node-sass
上述所说的三种安装方式经过验证,均可成功安装node-sass。