安装 npm install 时偶尔遇到报错:没有安装python或node-sass 安装失败的问题,百度之后发现是被墙了,但根据百度的方法换了淘宝镜像和用了vpn都安装失败,
原因可能是没有卸载之前失败的安装包导致的。如果是无法翻墙的问题请看下面:
(1)我们下载的资源包默认地址都是在国外,由于众所周知的原因,往往会下的很慢,甚至下载失败。
所以我们要配置npm的下载依赖包的仓库地址,使用淘宝镜像是目前最好的选择:npm config set registry https://registry.npm.taobao.org
使用yarn的同学:
yarn config set registry https://registry.npm.taobao.org -g
(2)如果还是不能下载可以配置下 node-sass 的二进制包镜像地址就可以了
yarn config set sass_binary_site http://cdn.npm.taobao.org/dist/node-sass -g
下面是看到的一篇文章,写的很不错,自己做个总结
解决方法一:创建.npmrc文件
在项目根目录创建.npmrc文件,复制下面代码到该文件。
phantomjs_cdnurl=http://cnpmjs.org/downloads sass_binary_site=https://npm.taobao.org/mirrors/node-sass/ registry=https://registry.npm.taobao.org
保存后 删除之前安装失败的包(第一次安装请跳过此步)
npm uninstall node-sass
重新安装
npm install node-sass
作者后来另一个项目在没有使用VPN的情况下测试方法一,安装时报错 ERR! node-sass@3.8.0 postinstall: `node scripts/build.js 改用方法二成功。
解决方法二:使用淘宝镜像源
设置变量 sass_binary_site,指向淘宝镜像地址。示例:
npm i node-sass --sass_binary_site=https://npm.taobao.org/mirrors/node-sass/ // 也可以设置系统环境变量的方式。示例 // linux、mac 下 SASS_BINARY_SITE=https://npm.taobao.org/mirrors/node-sass/ npm install node-sass // window 下 set SASS_BINARY_SITE=https://npm.taobao.org/mirrors/node-sass/ && npm install node-sass
或者设置全局镜像源:
npm config set sass_binary_site https://npm.taobao.org/mirrors/node-sass/
之后再涉及到 node-sass 的安装时就会从淘宝镜像下载。
解决方法三:使用 cnpm
使用 cnpm 安装 node-sass 会默认从淘宝镜像源下载,也是一个办法:
cnpm install node-sass
解决方法四:下载 .node 到本地
到这里去根据版本号、系统环境,选择下载 .node 文件,然后安装时,指定变量 sass_binary_path,如:
npm i node-sass --sass_binary_path=/Users/lzwme/Downloads/darwin-x64-48_binding.node
安装失败后重新安装问题
之前安装失败,再安装就不去下载了,怎么办呢?那就先卸载再安装:
npm uninstall node-sass npm i node-sass --sass_binary_site=https://npm.taobao.org/mirrors/node-sass/
参考地址https://segmentfault.com/a/1190000010984731