整理 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 面向对象思想 附源码
Jul 07 Javascript
javascript attachEvent绑定多个事件执行顺序问题
Oct 20 Javascript
onmouseover和onmouseout的一些问题思考
Aug 14 Javascript
jquery 实现输入邮箱时自动补全下拉提示功能
Oct 04 Javascript
JavaScript浏览器对象之一Window对象详解
Jun 03 Javascript
jQuery获取剪贴板内容的方法
Jun 16 Javascript
jQuery Easyui 下拉树组件combotree
Dec 16 Javascript
js从输入框读取内容,比较两个数字的大小方法
Mar 13 Javascript
Vue项目使用CDN优化首屏加载问题
Apr 01 Javascript
详解redux异步操作实践
Aug 15 Javascript
详解React中合并单元格的正确写法
Jan 08 Javascript
jquery+ajax实现上传图片并显示上传进度功能【附php后台接收】
Jun 06 jQuery
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
牡丹941资料
2021/03/01 无线电
php2html php生成静态页函数
2008/12/08 PHP
解析php常用image图像函数集
2013/06/24 PHP
php获取数据库结果集方法(推荐)
2017/06/01 PHP
使用Zttp简化Guzzle 调用
2017/07/02 PHP
jquery利用event.which方法获取键盘输入值的代码
2011/10/09 Javascript
将list转换为json失败的原因
2013/12/17 Javascript
seaJs的模块定义和模块加载浅析
2014/06/06 Javascript
jquery获取easyui日期控件的值实现方法
2016/11/09 Javascript
centos 上快速搭建ghost博客方法分享
2018/05/23 Javascript
jQuery 实现批量提交表格多行数据的方法
2018/08/09 jQuery
JS实现根据详细地址获取经纬度功能示例
2019/04/16 Javascript
微信小程序实现的picker多级联动功能示例
2019/05/23 Javascript
Js和VUE实现跑马灯效果
2020/05/25 Javascript
Vue 的 v-model用法实例
2020/11/23 Vue.js
[47:03]Ti4第二日主赛事败者组 LGD vs iG 2
2014/07/21 DOTA
python 文件和路径操作函数小结
2009/11/23 Python
用Python的线程来解决生产者消费问题的示例
2015/04/02 Python
Python中str is not callable问题详解及解决办法
2017/02/10 Python
详解python中TCP协议中的粘包问题
2019/03/22 Python
Python基于paramunittest模块实现excl参数化
2020/04/26 Python
如何使用python的ctypes调用医保中心的dll动态库下载医保中心的账单
2020/05/24 Python
Python分类测试代码实例汇总
2020/07/23 Python
Python 操作 MySQL数据库
2020/09/18 Python
使用Python解析Chrome浏览器书签的示例
2020/11/13 Python
教你一分钟在win10终端成功安装Pytorch的方法步骤
2021/01/28 Python
俄罗斯极限运动网上商店:Board Shop №1
2020/12/18 全球购物
机电专业个人自荐信格式模板
2013/09/23 职场文书
药物学专业学生的自我评价
2013/10/27 职场文书
企业党员一句话承诺
2014/05/30 职场文书
幼儿生日活动方案
2014/08/27 职场文书
客房领班岗位职责
2015/02/11 职场文书
员工年度工作总结2015
2015/05/18 职场文书
毕业实习单位意见
2015/06/04 职场文书
2016年优秀少先队员事迹材料
2016/02/26 职场文书
Netflix《海贼王》真人版剧集多张片场照曝光
2022/04/04 日漫