新装完系统每次跑项目基本都会遇到node-sass的问题,记录备用
背景
node-sass需要访问墙外的一些资源,正常情况npm install会失败
解决办法
不一定每一个都适用,看自己具体情况
一、vpn
有vpn的可以直接开vpn这个直接跑,一点问题没有。没有多余的操作,非常简单。但是我的ssr不知道为什么就是不行。有可能是全局模式也无法限制terminal走代理吧
二、淘宝镜像 - 三种办法
1.指定npm的仓库到淘宝镜像
在当前项目中新建 .npmrc文件。
```
registry=https://registry.npm.taobao.org
sass_binary_site=https://npm.taobao.org/mirrors/node-sass/
```
这样当前的项目使用npm安装依赖时都可以用镜像的资源
2.通过terminal全局指定
npm config set sass_binary_site=https://npm.taobao.org/mirrors/node-sass
这样配置是全局的会在c:->user>xxx(用户名) 新建 .npmrc文件。内容和上一步一样。也是可以手动去创建的
3.cnpm直接使用淘宝镜像
有人说直接用 npm i -g cnpm
以后用cnpm从来没遇到过。我试过了,不好使呢。。。
cnpm会遇到命令行无法运行的问题
set-ExecutionPolicy RemoteSigned 设置为A
get-ExecutionPolicy 查看是否设置成功
三、手动去添加node-sass
这个添加可需要注意。文件名,路径啥的都不能错。网上有些路径给的不好使vener/win32-x64-83/binding.node
,可能是改找的规则了吧。
Cached binary found at C:\Users\xxgcx\AppData\Roaming\npm-cache\node-sass\4.13.0\win32-x64-83_binding.node
node-sass下载不成功会去找缓存,github下载最新的版本,找到路径添加对应的文件就可以。
问题来了,用哪个版本呢?node -p "[process.platform,process.arch,process.versions.modules].join('-')"
看一下terminal输出的。我的是win32-x64-83
所以就去下载这个。Mac os的应该是darwin-x64-64
使用yarn
npm i -g yarn
其实和npm基本一样的。但是貌似不是这里的问题。用yarn也解决不了,yarn也需要手动添加win32-x64-83/binding.node。yarn的路径 和npm不一样C:\Users\xxgcx\AppData\Local/Yarn/Cache/v6/