安装node-sass时出现权限错误,请求协助解决(附完整日志)
解决node-sass@4.8.3安装时EACCES权限拒绝问题
我之前也踩过一模一样的坑!用sudo装node-sass反而会把项目目录的权限搞成root所有,后续普通用户操作直接触发权限拒绝错误。给你理清楚问题和靠谱的解决办法:
问题场景
执行以下命令安装node-sass@4.8.3时:
sudo npm install node-sass --save-dev
触发了EACCES权限错误,核心日志如下:
node-sass@4.8.3 install /home/r2d2/Desktop/Practice/Insta/node_modules/node-sass > node scripts/install.js Unable to save binary /home/r2d2/Desktop/Practice/Insta/node_modules/node-sass/vendor/linux-x64-57 : { Error: EACCES: permission denied, mkdir '/home/r2d2/Desktop/Practice/Insta/node_modules/node-sass/vendor' at Object.fs.mkdirSync (fs.js:885:18) at sync (/home/r2...
本质原因是sudo让npm以root身份运行,导致node_modules目录下的文件/子目录权限归root,后续普通用户身份的脚本无法创建新目录。
解决方案
1. 修复目录权限(最推荐,根治问题)
先把项目的node_modules目录和npm缓存目录的权限改回当前用户,从根源解决权限混乱:
# 修复npm缓存目录权限 sudo chown -R $USER:$GROUP ~/.npm # 修复项目node_modules目录权限 sudo chown -R $USER:$GROUP /home/r2d2/Desktop/Practice/Insta/node_modules
执行完这两个命令后,不要再用sudo,直接重新安装:
npm install node-sass@4.8.3 --save-dev
2. 临时应急:带权限参数安装(不推荐长期用)
如果临时不想调整权限,可以在安装时加参数强制允许root权限运行脚本:
npm install node-sass@4.8.3 --save-dev --unsafe-perm=true --allow-root
不过这只是临时 workaround,后续其他依赖安装可能还会碰到权限问题,优先用第一种方法更稳妥。
3. 清理缓存后重试
如果上面两种方法都没效果,先清理npm缓存再重新安装:
npm cache clean --force npm install node-sass@4.8.3 --save-dev
内容的提问来源于stack exchange,提问作者Aditya Raj
相关产品推荐
相关产品推荐

