Laravel执行npm install、npm run dev报错,求解决方案
解决npm FETCH_ERROR(EACCES)权限问题的方案
一、修复npm全局目录权限
- 查看当前npm全局包存储路径:
npm config get prefix - 若路径为
/usr或/usr/local,执行以下命令修改目录归属(替换your_username为你的系统用户名):sudo chown -R your_username:$(id -g -n your_username) $(npm config get prefix)/{lib/node_modules,bin,share} - 完成后重新执行
npm install,无需添加sudo
二、使用nvm管理Node.js版本(推荐)
- 卸载当前系统级Node.js:
- Ubuntu/Debian:
sudo apt remove nodejs npm - macOS(Homebrew):
brew uninstall node
- Ubuntu/Debian:
- 安装nvm:执行以下命令下载并运行官方安装脚本,完成后重启终端:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash - 安装LTS版本Node.js:
nvm install 18 - 设置默认Node.js版本:
nvm alias default 18 - 进入项目目录重新执行
npm install和npm run dev
三、临时应急方案(不推荐长期使用)
- 若上述方法暂时无法实施,可临时用
sudo执行命令,之后修复项目目录权限:sudo npm install sudo chown -R your_username:your_username ./node_modules npm run dev - 注意:长期使用
sudo执行npm命令会导致文件权限混乱,后续可能引发更多问题
四、排查代理配置问题
- 错误的代理设置可能触发FETCH_ERROR,执行以下命令清除代理配置:
npm config delete proxy npm config delete https-proxy - 清除后重新尝试
npm install
内容的提问来源于stack exchange,提问作者Yuki T
相关产品推荐
相关产品推荐

