1

我目前正在使用带有 Sail 包的 Laravel 8.48.2。我在 Windows 上使用 WSL 2 和 Ubuntu 发行版时通过 Docker Desktop 设置并运行其映像。一切似乎都运行良好。

运行后sail npm install,软件包安装成功,但收到以下消息:

npm notice New minor version of npm available! 7.18.1 -> 7.19.0
npm notice Changelog: https://github.com/npm/cli/releases/tag/v7.19.0
npm notice Run npm install -g npm@7.19.0 to update!

因此,我尝试运行sail npm install -g npm@7.19.0它给了我以下消息:

npm ERR! code EACCES
npm ERR! syscall rename
npm ERR! path /usr/lib/node_modules/npm
npm ERR! dest /usr/lib/node_modules/.npm-qUIFSsiV
npm ERR! errno -13
npm ERR! Error: EACCES: permission denied, rename '/usr/lib/node_modules/npm' -> '/usr/lib/node_modules/.npm-qUIFSsiV'
npm ERR!  [Error: EACCES: permission denied, rename '/usr/lib/node_modules/npm' -> '/usr/lib/node_modules/.npm-qUIFSsiV'] {
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'rename',
npm ERR!   path: '/usr/lib/node_modules/npm',
npm ERR!   dest: '/usr/lib/node_modules/.npm-qUIFSsiV'
npm ERR! }
npm ERR!
npm ERR! The operation was rejected by your operating system.
npm ERR! It is likely you do not have the permissions to access this file as the current user
npm ERR!
npm ERR! If you believe this might be a permissions issue, please double-check the
npm ERR! permissions of the file and its containing directories, or try running
npm ERR! the command again as root/Administrator.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/sail/.npm/_logs/2021-06-26T15_27_02_291Z-debug.log

如何在 Sail 上更新 NPM 版本?

先感谢您。

4

2 回答 2

2

查看您的日志,您运行的用户似乎对该文件夹的权限不足/usr/lib/node_modules/。因此,您可能会尝试使用当前用户和组(由 找到)登录docker-compose exec laravel.test bash并使用容器。或 chmod 文件夹以对该文件夹具有更宽松的总体权限。chown -R user:group /usr/lib/node_modules/whoami

于 2021-06-29T06:59:13.423 回答
1

感谢@online Thomas ( https://stackoverflow.com/a/68173952/14508436 ),为了解决我的问题,我按照以下步骤操作:

  1. 在我的 Laravel 项目目录中,我运行了这个命令... docker-compose exec laravel.test bash,它将你指向 docker 的服务器(或类似的东西),直接在你的项目目录上。
  2. 我运行了这个命令......npm install -g npm@7.19.0它将 npm 更新到更新的版本,没有任何问题。

我按照@online Thomas 的建议尝试了chownandchmod命令,但徒劳无功。我仍然无法sail npm install -g npm@7.19.0在 docker 服务器之外使用该命令。

于 2021-09-08T19:18:36.727 回答