问题原因
国内使用npm安装node-sass时主要是由于node-sass需要在github上拉取文件,而国内是无法稳定连接github的。
当github上无法拉去文件时,将会转为使用node在本地编译,这时会需要用到python,而非python相关使用者一般都会报错,报错内容与gyp和python相关。
解决问题
前置条件:有方式能连接到github
作为非python使用者,我们不可能为此花费更多的时间安装对应的环境,所以可以使用本地安装的方式。过程如下
1. 执行控制台命令
node -p "[process.platform,process.arch,process.versions.modules].join('-')"
这时会获取到一条字符串 例如 win32-x64-93
2. 进入github下载
https://github.com/sass/node-sass/releases
根据上面给出的字符串,选择对应的win32-x64-93_binding.node 下载,大概2m大小
3. 缓存
由于报错一般是安装过的,所以可以先自行复制该文件到对应的缓存文件下
yarn路径一般是 C:\Users\admin\AppData\Local\Yarn\Cache\v6 其中admin是你电脑的用户名
npm是自己设置的node_cache下的node-sass目录
注意:可能需要新建对应的目录,但我在安装时并未考虑这一点但也成功了
4. 安装
在一个固定的位置放好下载的包然后去对应项目控制台执行
// npm
npm i node-sass --sass_binary_path=E:\code\win32-x64-93_binding.node
// yarn
yarn config set sass-binary-path E:\code\win32-x64-93_binding.node
- npm也可以设置config yarn也可以直接指定
- yarn使用的不太多所以请自行查询指令
// 这破依赖看着真烦,有些点建议参考其他文章,仅做个记录以防自己忘了