下面是解决 "node-sass一直安装不上、安装失败" 的完整攻略:
原因分析
"node-sass" 失败的原因可能有以下几种:
- 网络不通畅,无法从npm源或Github上下载相关代码。
- 「node-gyp」编译环境错误,根据node-sass的依赖文件node-gyp的版本来安装或重新安装node-gyp。
- 「Python环境」未安装或未配置正确,根据自己的系统和node-gyp的要求配置Python环境即可。
解决方法
1. 切换镜像源
在执行 "npm install node-sass" 命令时,很可能因为网络问题,从 npm 官方镜像源 download.npmjs.org 下载失败或者下载速度慢,可以尝试切换到其他国内镜像源。
以淘宝镜像为例,可以使用以下命令切换:
npm config set registry https://registry.npm.taobao.org
或将切换后镜像源永久设置:
npm config set registry https://registry.npm.taobao.org --global
切换镜像源之后,再执行 "npm install node-sass" 命令,看看能否安装成功。
2. 安装 "node-gyp"
"node-sass" 的编译需要 "node-gyp" 的库,缺少它就会出问题。
(1) 首先从 npm 安装 "node-gyp":
npm install -g node-gyp
(2) 然后重新安装 "node-sass":
npm install node-sass
3. 配置 Python 环境
如果前两个方法都不行,可以尝试配置 Python 环境。
(1) 安装 Python
安装Python请参考:Python官方网站,选择对应的版本下载。
(2) 配置 Python 环境变量
将 Python 安装路径添加到系统环境变量 PATH 中。
以 windows 为例:
(1)打开「控制面板」-->「系统」-->「高级系统设置」-->「环境变量」。
(2)在「系统变量」区域中找到 "Path" 变量,双击即可打开编辑窗口。
(3)在编辑地址栏中加入 "Python安装目录",确定即可。
(3) 指定 Python 2.7.x 版本
在一些情况下,如果安装了多个版本的 Python,也可能会导致 "node-sass" 安装失败,这时需要手动指定 Python 2.7.x 版本:
npm config set python python2.7
示例说明
示例一:
在安装 node-sass 时,报错提示:
gyp WARN EACCES spawn Error EACCES: permission denied
gyp WARN EACCES cwd /Users/xxx/node_modules/node-sass
gyp WARN EACCES System Darwin 18.7.0
gyp WARN EACCES command "node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library="
...
在这种情况下,既没有出现 node-gyp 不存在的提示,也没有 Python 配置的报错信息。很可能是因为文件权限限制导致 "node-sass" 安装失败。
解决方法:
sudo chown -R $USER:$GROUP ~/.npm
sudo chown -R $USER:$GROUP ~/.config
mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
export PATH=~/.npm-global/bin:$PATH
source ~/.profile
示例二:
在安装最新版本的 node-sass 时,报错提示:
Downloading binary from https://github.com/sass/node-sass/releases/download/v4.5.2/darwin-x64-64_binding.node
Cannot download "https://github.com/sass/node-sass/releases/download/v4.5.2/darwin-x64-64_binding.node":
HTTP error 404 Not Found
造成这种情况的原因通常是因为更新后的 node-sass 版本,但是 node-gyp 的版本与之不兼容,重新安装 node-gyp 即可。
解决方法:
npm uninstall node-gyp -g
npm install node-gyp -g
希望对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:node-sass一直安装不上、安装失败的原因分析 - Python技术站