整理 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 调试利器 Firebug使用详解六
Jul 05 Javascript
用jQuery扩展自写的 UI导航
Jan 13 Javascript
js获取键盘按键响应事件(兼容各浏览器)
May 16 Javascript
JS中的构造函数详细解析
Mar 10 Javascript
javascript检查浏览器是否支持flash的实现代码
Aug 14 Javascript
Jquery Easyui选项卡组件Tab使用详解(10)
Dec 18 Javascript
Angular.js中ng-if、ng-show和ng-hide的区别介绍
Jan 20 Javascript
Bootstrap模态框案例解析
Mar 05 Javascript
jquery实现下拉菜单的手风琴效果
Jul 23 jQuery
axios的拦截请求与响应方法
Aug 11 Javascript
JavaScript页面加载事件实例讲解
Sep 01 Javascript
echarts实现折线图的拖拽效果
Dec 19 Javascript
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
WINDOWS 2000下使用ISAPI方式安装PHP
2006/09/05 PHP
php中sql注入漏洞示例 sql注入漏洞修复
2014/01/24 PHP
避免Smarty与CSS语法冲突的方法
2015/03/02 PHP
基于PHP实现短信验证码接口(容联运通讯)
2016/09/06 PHP
Jquery 选中表格一列并对表格排序实现原理
2012/12/15 Javascript
js数组方法扩展实现数组统计函数
2014/04/09 Javascript
jQuery中prependTo()方法用法实例
2015/01/08 Javascript
javascript鼠标滑动评分控件完整实例
2015/05/13 Javascript
javascript排序函数实现数字排序
2015/06/26 Javascript
JavaScript让Textarea支持tab按键的方法
2015/06/26 Javascript
jquery实现清新实用的网页菜单效果
2015/08/28 Javascript
一道优雅面试题分析js中fn()和return fn()的区别
2016/07/05 Javascript
ES6中module模块化开发实例浅析
2017/04/06 Javascript
实例解析ES6 Proxy使用场景介绍
2018/01/08 Javascript
jQuery实现鼠标响应式透明度渐变动画效果示例
2018/02/13 jQuery
Vue2 模板template的四种写法总结
2018/02/23 Javascript
微信小程序使用for循环动态渲染页面操作示例
2018/12/25 Javascript
详解Nodejs get获取远程服务器接口数据
2019/03/26 NodeJs
浅谈关于vue中scss公用的解决方案
2019/12/02 Javascript
基于NodeJS开发钉钉回调接口实现AES-CBC加解密
2020/08/20 NodeJs
解析Python中的__getitem__专有方法
2016/06/27 Python
python 自动化将markdown文件转成html文件的方法
2016/09/23 Python
python实现图片处理和特征提取详解
2017/11/13 Python
python版学生管理系统
2018/01/10 Python
python实现事件驱动
2018/11/21 Python
Python matplotlib的使用并自定义colormap的方法
2018/12/13 Python
python多线程与多进程及其区别详解
2019/08/08 Python
使用Tensorboard工具查看Loss损失率
2020/02/15 Python
python 利用matplotlib在3D空间中绘制平面的案例
2021/02/06 Python
使用phonegap获取位置信息的实现方法
2017/03/31 HTML / CSS
孝老爱亲事迹材料
2014/12/24 职场文书
先进集体申报材料
2014/12/25 职场文书
检讨书怎么写
2015/01/23 职场文书
2015年结对帮扶工作总结
2015/05/04 职场文书
辩护意见书
2015/06/04 职场文书
驻村工作简报
2015/07/20 职场文书