整理 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实现N皇后问题算法谜题解答
Dec 29 Javascript
JavaScript控制网页层收起和展开效果的方法
Apr 15 Javascript
jQuery关键词说明插件cluetip使用指南
Apr 21 Javascript
javascript实现随机显示星星特效
Jan 28 Javascript
微信小程序 实战小程序实例
Oct 08 Javascript
jq给页面添加覆盖层遮罩的实例
Feb 16 Javascript
vue.js实现刷新当前页面的方法教程
Jul 05 Javascript
JS中Object对象的原型概念基础
Jan 29 Javascript
泛谈JS逻辑判断选择器 || &amp;&amp;
May 24 Javascript
vue实现条件叠加搜索的解决方法
May 28 Javascript
微信小程序防止多次点击跳转和防止表单组件输入内容多次验证功能(函数防抖)
Sep 19 Javascript
JavaScript执行机制详细介绍
Dec 06 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
跟我学小偷程序之成功偷取首页(第三天)
2006/10/09 PHP
PHP生成带有雪花背景的验证码
2006/10/09 PHP
Linux下实现PHP多进程的方法分享
2012/08/16 PHP
PHP自定义函数获取URL中一级域名的方法
2016/08/23 PHP
javascript 解析后的xml对象的读取方法细解
2009/07/25 Javascript
Thinkphp模板没有解析直接原样输出的解决方法
2014/10/31 Javascript
javascript获取当前鼠标坐标的方法
2015/01/10 Javascript
JavaScript 闭包详细介绍
2016/09/28 Javascript
AngularJS学习笔记(三)数据双向绑定的简单实例
2016/11/08 Javascript
js转换对象为xml
2017/02/17 Javascript
JavaScript数据类型和变量_动力节点Java学院整理
2017/06/26 Javascript
JavaScript for循环 if判断语句(学习笔记)
2017/10/11 Javascript
Bootstrap 实现表格样式、表单布局的实例代码
2018/12/09 Javascript
jQuery实现轮播图效果demo
2020/01/11 jQuery
Python实现两个list对应元素相减操作示例
2017/06/09 Python
Python3 处理JSON的实例详解
2017/10/29 Python
将python图片转为二进制文本的实例
2019/01/24 Python
python的依赖管理的实现
2019/05/14 Python
Python实现捕获异常发生的文件和具体行数
2020/04/25 Python
基于python实现把json数据转换成Excel表格
2020/05/07 Python
python如何实现图片压缩
2020/09/11 Python
在Python中字典按值排序的实现方法
2020/11/12 Python
解决pycharm 格式报错tabs和space不一致问题
2021/02/26 Python
英国网上电器商店:Electricshop
2020/03/15 全球购物
波兰最大的电商平台:Allegro.pl
2021/02/06 全球购物
3个CCIE对一个工程师的面试题
2012/05/06 面试题
初中生期末考试的自我评价
2013/12/17 职场文书
幼儿园教学管理制度
2014/02/04 职场文书
大学生在校学习的自我评价
2014/02/18 职场文书
社区工作者感言
2014/03/02 职场文书
竞选宣传委员演讲稿
2014/05/24 职场文书
法人代表身份证明书及授权委托书
2014/09/16 职场文书
2015年客服工作总结范文
2015/04/02 职场文书
大学学生会辞职信
2015/05/13 职场文书
小组组名及励志口号
2015/12/24 职场文书
tensorflow中的数据类型dtype用法说明
2021/05/26 Python