You need to enable JavaScript to run this app. 如何在Laravel Sail环境中正确更新npm版本
优惠活动
大模型
产品
解决方案
定价
更多

如何在Laravel Sail环境中正确更新npm版本

报错原因

你遇到的EACCES权限错误是因为默认情况下sail执行命令时使用容器内的普通用户sail,没有权限修改/usr/lib/node_modules这类系统级目录,因此全局安装npm会被系统拦截。

解决方案

你可以根据需求选择以下任意一种方法:

方法一:临时更新npm版本(重建容器后会恢复原有版本)

直接以root身份执行npm全局更新命令即可:

  1. 进入Sail容器的root交互终端:
./vendor/bin/sail root-shell
  1. 在容器内执行npm更新命令:
npm install -g npm@7.19.0
  1. 执行完成后输入exit退出终端即可。
  2. 验证版本:执行./vendor/bin/sail npm -v确认版本已更新为7.19.0。

方法二:永久固定npm版本(重建容器也不会失效)

如果希望后续重建Sail镜像时自动保留指定npm版本,可以自定义Sail的Docker配置:

  • 发布Sail的默认Docker配置文件到项目目录:
php artisan sail:publish
  • 打开项目下docker/[PHP版本号]/Dockerfile文件(比如你使用PHP 8.0就是docker/8.0/Dockerfile),在安装Node.js的相关命令下方新增一行:
RUN npm install -g npm@7.19.0
  • 重新构建Sail镜像:
./vendor/bin/sail build --no-cache
  • 重启Sail容器后即可生效,后续无论多少次重建镜像,npm都会保持7.19.0版本。

内容的提问来源于stack exchange,提问作者gabys

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.14 05:30:01