Ubuntu 16环境下npm install报错:node-sass@4.5.0安装失败
搞定Ubuntu 16.04下npm装node-sass@4.5.0时的spawn ENOENT报错
嘿,我之前在处理老Ubuntu系统的Node项目时也碰到过这个问题,这个报错本质上是node-sass安装脚本没法正常执行,大概率是依赖缺了、Node版本不兼容或者网络的锅,给你几个实测有效的解决步骤:
1. 先补全系统依赖
node-sass编译需要底层的编译工具和Python 2.7,Ubuntu 16.04默认可能没装全,先跑这几条命令:
sudo apt-get update sudo apt-get install build-essential libssl-dev python2.7
划重点:node-sass@4.5.0只认Python 2.7,别用Python 3,不然肯定出问题!
2. 确认Node.js版本是否匹配
node-sass@4.5.0对Node版本要求很严,只能用Node 4.x到7.x之间的版本,要是你装的是8.x及以上的Node,肯定兼容不了。用nvm来切换版本最方便:
先装nvm(直接在终端执行这个命令就行):
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
装完重启终端,然后安装并切换到兼容的版本:
nvm install 6.17.1 nvm use 6.17.1
这个版本是官方测试过和node-sass@4.5.0最搭的,切换完再跑npm install试试。
3. 清缓存重来
有时候npm缓存坏了也会搞出这种莫名其妙的错,先清掉缓存和旧的依赖包:
npm cache clean --force rm -rf node_modules package-lock.json npm install
4. 换国内镜像解决网络问题
如果是因为网络原因下载不到node-sass的二进制包,就把源换成国内的:
npm config set sass_binary_site=https://npm.taobao.org/mirrors/node-sass/
设置完再重新安装应该就能搞定了。
要是以上方法都不行,你可以检查下终端的PATH环境变量,确保Node.js的执行路径在里面,或者有没有代理设置导致网络请求失败。
内容的提问来源于stack exchange,提问作者Jayanta Baishya
相关产品推荐
相关产品推荐

