整理 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 相关文章推荐
IE下js调试工具Companion.JS
Oct 15 Javascript
详解JavaScript中数组的相关知识
Jul 29 Javascript
jQuery实现仿美橙互联两级导航菜单效果完整实例
Sep 17 Javascript
jQuery Mobile和HTML5开发App推广注册页
Nov 07 Javascript
angularjs数组判断是否含有某个元素的实例
Feb 27 Javascript
vue.js使用watch监听路由变化的方法
Jul 08 Javascript
layui从数据库中获取复选框的值并默认选中方法
Aug 15 Javascript
Angular resolve基础用法详解
Oct 03 Javascript
从0到1搭建Element的后台框架的方法步骤
Apr 10 Javascript
一些手写JavaScript常用的函数汇总
Apr 16 Javascript
微信公众号开发之微信支付代码记录的实现
Oct 16 Javascript
基于javascript的无缝滚动动画实现2
Aug 07 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
ThinkPHP缓存方法S()概述
2014/06/13 PHP
PHP获取二维数组中某一列的值集合
2015/12/25 PHP
php  PATH_SEPARATOR判断当前服务器系统类型实例
2016/10/28 PHP
DHTML 中的绝对定位
2006/11/26 Javascript
jquery 操作css样式、位置、尺寸方法汇总
2014/11/28 Javascript
RequireJS入门一之实现第一个例子
2015/09/30 Javascript
使用JS中的exec()方法构造正则表达式验证
2016/08/01 Javascript
简单谈谈ES6的六个小特性
2016/11/18 Javascript
js编写选项卡效果
2017/05/23 Javascript
JavaScript实现获取用户单击body中所有A标签内容的方法
2017/06/05 Javascript
sublime text配置node.js调试(图文教程)
2017/11/23 Javascript
ES6 系列之 WeakMap的使用示例
2018/08/06 Javascript
angularjs的单选框+ng-repeat的实现方法
2018/09/12 Javascript
extjs图表绘制之条形图实现方法分析
2020/03/06 Javascript
vue3.0 加载json的方法(非ajax)
2020/10/26 Javascript
python实现多线程的方式及多条命令并发执行
2016/06/07 Python
Python安装lz4-0.10.1遇到的坑
2018/05/20 Python
Python3编码问题 Unicode utf-8 bytes互转方法
2018/10/26 Python
Python实现的序列化和反序列化二叉树算法示例
2019/03/02 Python
使用Tensorflow实现可视化中间层和卷积层
2020/01/24 Python
使用OpenCV实现人脸图像卡通化的示例代码
2021/01/15 Python
CSS3弹性布局内容对齐(justify-content)属性使用详解
2017/07/31 HTML / CSS
基于HTML5的WebGL实现json和echarts图表展现在同一个界面
2017/10/26 HTML / CSS
旅游节目策划方案
2014/05/26 职场文书
体操比赛口号
2014/06/10 职场文书
纪律教育月活动总结
2014/08/26 职场文书
2014年药品销售工作总结
2014/12/16 职场文书
公司庆典欢迎词
2015/01/26 职场文书
2015年度物流工作总结
2015/04/30 职场文书
公务员保密工作承诺书
2015/05/04 职场文书
实习介绍信范文
2015/05/05 职场文书
2016年12月份红领巾广播稿
2015/12/21 职场文书
2016道德模范先进事迹材料
2016/02/26 职场文书
Java Dubbo框架知识点梳理
2021/06/26 Java/Android
MySQL七大JOIN的具体使用
2022/02/28 MySQL
Java练习之潜艇小游戏的实现
2022/03/16 Java/Android