【node】npm install安装node-sass总是出现问题?
在脚手架项目里使用到了sass,我们npm install时node-sass出现的问题总是最多的。
分析安装步骤
其实node-sass它是依赖binding.node这么一个文件的;
首先npm下载node-sass,然后会检测全局和本地中是否有binding.node文件,如果有即跳过安装,没有则从github下载该二进制文件并将其缓存到全局,假如binding.node下载失败,则尝试本地编译出该文件,而本地编译过程就需要python环境,一般它会提示需要python27环境(如果以上问题解决就不会出现这一步)。
原因1-下载node-sass,源慢(国外的源)
可使用nrm管理npm源,切换到taobao源(首先要安装nrm)
nrm use taobao
或者直接将npm设置成taobao源:npm config set registry https://registry.npm.taobao.org
原因2-binding.node下载过慢或无法访问
binding.node下载默认是github地址,国内访问较慢有时候还无法访问。我们也可以将其改成国内的地址:npm config set sass_binary_site=https://npm.taobao.org/mirrors/node-sass
原因3-node版本与node-sass版本不兼容
参考官方:https://github.com/sass/node-sass
NodeJS | Supported node-sass version | Node Module |
---|---|---|
Node 15 | 5.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+ | 64 |
Node 8 | 4.5.3+, <5.0 | 57 |
Node <8 | <5.0 | <57 |
原因4-提示没有安装python、build失败等
如果上面的都可以解决这一步实际上是本地编译需要的python环境等,按照提示装python环境即可,一般是python27版本。