安装node-sass时遭遇EACCES权限拒绝错误的技术求助
解决node-sass安装时的EACCES权限拒绝问题
从你给出的报错日志来看,核心问题是当前用户没有权限在/var/www/****/node_modules/node-sass目录下创建build文件夹——毕竟/var/www目录默认归root用户所有,普通用户直接执行npm install会触发权限限制。
下面是几个靠谱的解决方法,按推荐程度排序:
方法1:修改项目目录的所有权(最推荐)
把你的项目目录的所有权转移到当前登录用户,这样npm就能正常创建和修改文件了:
# 替换****为你的实际项目目录名 sudo chown -R $USER:$USER /var/www/****
执行完这条命令后,再重新运行:
npm install node-sass
方法2:临时使用unsafe-perm参数(应急方案)
如果暂时不想修改目录权限,可以在安装时添加--unsafe-perm参数,让npm以root权限执行postinstall脚本(注意:这个方法不建议长期使用,存在安全风险):
npm install node-sass --unsafe-perm
方法3:检查是否用root用户执行过npm
如果你之前用root身份运行过npm,可能导致node_modules目录的所有权变成root,这时候同样需要先修改权限:
sudo chown -R $USER:$USER /var/www/****/node_modules
之后再重新执行安装命令即可。
额外提醒
- 永远不要用
sudo npm install来解决权限问题,这会导致后续更多的权限混乱。 - 你的Node.js版本v10.2.1和node-sass@4.9.0是兼容的,不用考虑版本不匹配的问题。
内容的提问来源于stack exchange,提问作者tonymx227
相关产品推荐
相关产品推荐

