整理 node-sass 安装失败的原因及解决办法(小结)


Posted in Javascript onFebruary 19, 2020

npm install 时偶尔遇到报错:没有安装python或node-sass 安装失败的问题,百度之后发现是被墙了,但根据百度的方法换了淘宝镜像和用了vpn都安装失败,最后发现原来是因为没有卸载之前安装失败的包导致的。作者本人最后的解决方案是npm uninstall node-sass,然后使用VPN重新安装了一遍就成功了。不能翻墙的同学请看下文

node-sass 安装失败的原因

npm 安装 node-sass 依赖时,会从 github.com 上下载 .node 文件。由于国内网络环境的问题,这个下载时间可能会很长,甚至导致超时失败。

这是使用 sass 的同学可能都会遇到的郁闷的问题。

解决方案就是使用其他源,或者使用工具下载,然后将安装源指定到本地。

解决方法一:使用淘宝镜像源(推荐)

设置变量 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

解决方法三:创建.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 改用方法一成功。

解决方法四:下载 .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/

相关错误提示

提示没有安装python、build失败等,如:

gyp ERR! configure error
gyp ERR! stack Error: Can't find Python executable "C:\Users\zhuon\AppData\Local\Programs\Python\Python36\python.EXE", you can set the PYTHON env variable.
gyp ERR! stack   at PythonFinder.failNoPython (G:\Workspace\ManYan\manyan-nav\node_modules\node-gyp\lib\configure.js:483:19)
gyp ERR! stack   at PythonFinder.<anonymous> (G:\Workspace\ManYan\manyan-nav\node_modules\node-gyp\lib\configure.js:508:16)
gyp ERR! stack   at G:\Workspace\ManYan\manyan-nav\node_modules\graceful-fs\polyfills.js:284:29
gyp ERR! stack   at FSReqWrap.oncomplete (fs.js:152:21)
gyp ERR! System Windows_NT 10.0.15063
gyp ERR! command "C:\\dev\\nodejs\\node.exe" "G:\\Workspace\\ManYan\\manyan-nav\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags="
"--libsass_library="
gyp ERR! cwd G:\Workspace\ManYan\manyan-nav\node_modules\node-sass
gyp ERR! node -v v8.4.0
gyp ERR! node-gyp -v v3.6.2
gyp ERR! not ok
Build failed
npm WARN co-mocha@1.2.0 requires a peer of mocha@>=1.18 <4 but none was installed.
npm WARN egg-restapi-module-tool@1.0.0 No repository field.
npm WARN egg-restapi-module-tool@1.0.0 scripts['server'] should probably be scripts['start'].

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! node-sass@3.8.0 postinstall: `node scripts/build.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the node-sass@3.8.0 postinstall script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!   D:\nodejs\cache\_logs\2017-09-02T16_06_24_298Z-debug.log

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Javascript异步表单提交,图片上传,兼容异步模拟ajax技术
May 10 Javascript
jquery实现table鼠标经过变色代码
Sep 25 Javascript
JavaScript将字符串转换为整数的方法
Apr 14 Javascript
javascript图片延迟加载实现方法及思路
Dec 31 Javascript
基于JavaScript实现弹出框效果
Feb 19 Javascript
jQuery中通过ajax调用webservice传递数组参数的问题实例详解
May 20 Javascript
Angualrjs 表单验证的两种方式(失去焦点验证和点击提交验证)
May 09 Javascript
vue 1.x 交互实现仿百度下拉列表示例
Oct 21 Javascript
EasyUI的DataGrid绑定Json数据源的示例代码
Dec 16 Javascript
Vue实现点击后文字变色切换方法
Feb 11 Javascript
JavaScript制作3D旋转相册
Aug 02 Javascript
vue组件的路由高亮问题解决方法
May 11 Vue.js
Vue常用的全选/反选的示例代码
Feb 19 #Javascript
详解node和ES6的模块导出与导入
Feb 19 #Javascript
JS实现分页导航效果
Feb 19 #Javascript
vue随机验证码组件的封装实现
Feb 19 #Javascript
JavaScript实现PC端四格密码输入框功能
Feb 19 #Javascript
vue实现带过渡效果的下拉菜单功能
Feb 19 #Javascript
Vue.js仿Select下拉框效果
Feb 18 #Javascript
You might like
关于Iframe如何跨域访问Cookie和Session的解决方法
2013/04/15 PHP
php实现根据url自动生成缩略图的方法
2014/09/23 PHP
php中smarty模板条件判断用法实例
2015/06/11 PHP
yii2 url重写并隐藏index.php方法
2018/12/10 PHP
JavaScript的目的分析
2007/01/05 Javascript
jquery(live)中File input的change方法只起一次作用的解决办法
2011/10/21 Javascript
jQuery中extend函数的实现原理详解
2015/02/03 Javascript
Javascript中拼接大量字符串的方法
2015/02/05 Javascript
如何使用Bootstrap的modal组件自定义alert,confirm和modal对话框
2016/03/01 Javascript
纯JS代码实现气泡效果
2016/05/04 Javascript
微信开发之调起摄像头、本地展示图片、上传下载图片实例
2016/12/08 Javascript
JavaScript奇技淫巧44招【实用】
2016/12/11 Javascript
微信小程序微信支付接入开发实例详解
2017/04/12 Javascript
vue.js之vue-cli脚手架的搭建详解
2017/05/05 Javascript
jQuery Layer弹出层传值到父页面的实现代码
2017/08/17 jQuery
vue写一个组件
2018/04/09 Javascript
JavaScript实现轮播图特效
2020/04/10 Javascript
Vue 3.0 全家桶抢先体验
2020/04/28 Javascript
Python查看多台服务器进程的脚本分享
2014/06/11 Python
Python手机号码归属地查询代码
2016/05/04 Python
Python深入06——python的内存管理详解
2016/12/07 Python
Python实现随机生成手机号及正则验证手机号的方法
2018/04/25 Python
python 读取txt中每行数据,并且保存到excel中的实例
2018/04/29 Python
pandas重新生成索引的方法
2018/11/06 Python
详解Python3 基本数据类型
2019/04/19 Python
python自动分箱,计算woe,iv的实例代码
2019/11/22 Python
Python 跨.py文件调用自定义函数说明
2020/06/01 Python
matplotlib实现数据实时刷新的示例代码
2021/01/05 Python
英国领先的野生鸟类食品供应商:GardenBird
2018/08/09 全球购物
药学专业个人的自我评价
2013/12/31 职场文书
三方协议书范本
2014/04/22 职场文书
白酒营销策划方案
2014/08/17 职场文书
高中课前三分钟演讲稿
2014/09/13 职场文书
高中生逃课检讨书
2014/10/10 职场文书
消防验收申请报告
2015/05/15 职场文书
OpenCV-Python使用cv2实现傅里叶变换
2021/06/09 Python