整理 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 相关文章推荐
如何将一个String和多个String值进行比较思路分析
Apr 22 Javascript
利用js制作html table分页示例(js实现分页)
Apr 25 Javascript
jQuery延迟加载图片插件Lazy Load使用指南
Mar 25 Javascript
js实现鼠标经过表格行变色的方法
May 12 Javascript
深入剖析JavaScript面向对象编程
Jul 12 Javascript
纯原生js实现table表格的增删
Jan 05 Javascript
Bootstrap输入框组件使用详解
Jun 09 Javascript
BootStrap模态框和select2合用时input无法获取焦点的解决方法
Sep 01 Javascript
layui将table转化表单显示的方法(即table.render转为表单展示)
Sep 24 Javascript
webpack3升级到webpack4遇到问题总结
Sep 30 Javascript
js最全的数组的降维5种办法(小结)
Apr 28 Javascript
在vue中使用防抖函数组件操作
Jul 26 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
全国FM电台频率大全 - 13 福建省
2020/03/11 无线电
ThinkPHP自动验证失败的解决方法
2011/06/09 PHP
PHP判断图片格式的七种方法小结
2013/06/03 PHP
php cli配置文件问题分析
2015/10/15 PHP
抛弃 PHP 代价太高
2016/04/26 PHP
php实现批量删除挂马文件及批量替换页面内容完整实例
2016/07/08 PHP
用函数式编程技术编写优美的 JavaScript
2006/11/25 Javascript
Javascript 变量作用域 两个可能会被忽略的小特性
2010/03/23 Javascript
location.href 在IE6中不跳转的解决方法与推荐使用代码
2010/07/08 Javascript
html a标签-超链接中confirm方法使用介绍
2013/01/04 Javascript
很好用的js日历算法详细代码
2013/03/07 Javascript
javascript相等运算符与等同运算符详细介绍
2013/11/09 Javascript
jQuery 回车事件enter使用示例
2014/02/18 Javascript
jQuery添加/改变/移除CSS类及判断是否已经存在CSS
2014/08/20 Javascript
JavaScript实现的in_array函数
2014/08/27 Javascript
JS数组(Array)处理函数整理
2014/12/07 Javascript
如何编写高质量JS代码(续)
2015/02/25 Javascript
JQuery工具函数汇总
2015/06/15 Javascript
纯css实现窗户玻璃雨滴逼真效果
2015/08/23 Javascript
node.js实现博客小爬虫的实例代码
2016/10/08 Javascript
微信和qq时间格式模板实例详解
2016/10/21 Javascript
Angular下H5上传图片的方法(可多张上传)
2017/01/09 Javascript
Ionic + Angular.js实现验证码倒计时功能的方法
2017/06/12 Javascript
NodeJs crypto加密制作token的实现代码
2019/11/15 NodeJs
node.js中 mysql 增删改查操作及async,await处理实例分析
2020/02/11 Javascript
vue 项目引入echarts 添加点击事件操作
2020/09/09 Javascript
Vue 列表页带参数进详情页的操作(router-link)
2020/11/13 Javascript
Python 正则表达式操作指南
2009/05/04 Python
基于Python中capitalize()与title()的区别详解
2017/12/09 Python
10款最好的Python开发编辑器
2019/07/03 Python
如何提高python 中for循环的效率
2020/04/15 Python
如何基于python实现不邻接植花
2020/05/01 Python
商务邀请函范文
2014/01/14 职场文书
2016先进集体事迹材料范文
2016/02/25 职场文书
pytorch中的model.eval()和BN层的使用
2021/05/22 Python
DQL数据查询语句使用示例
2022/12/24 MySQL