npm WARN checkPermissions 缺少对 /usr/local/lib/node_modules 的写入权限

npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules

注意:出于安全考虑,请不要使用标记的解决方案,而是 !


原题:

我正在尝试使用此命令安装 monaca。

npm install -g monaca

但是在收到这些错误之后:

npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules 
npm ERR! path /usr/local/lib/node_modules
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall access
npm ERR! Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
npm ERR!  { Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
npm ERR!   stack: 'Error: EACCES: permission denied, access \'/usr/local/lib/node_modules\'',
npm ERR!   errno: -13, npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'access',
npm ERR!   path: '/usr/local/lib/node_modules' }

知道如何解决这个问题吗? 谢谢

解决此问题的不明智方法是使用 sudo:

sudo npm install -g monaca

然而,最好找到不使用 sudo 的解决方法。

注意:强烈建议避免将 sudo 与 npm 一起使用!

不推荐使用 sudo。稍后可能会给您权限问题。虽然上述方法有效,但使用 永久解决您的问题。

安装 npm 后将以下行添加到 ~/.bashrc:

npm set prefix ~/.npm
PATH="$HOME/.npm/bin:$PATH"
PATH="./node_modules/.bin:$PATH"

更改后执行以下行:

source ~/.bashrc

并且如@contemplator 所述,避免使用 sudo

好吧,我使用 --save-dev 并没有全局安装它或使用 -g,主要问题发生在您希望它写入默认 node_modules 文件夹时。

在检查多个问题 4 小时后,它解决了我的问题。

我什至建议您使用 npm init 并制作一个 package.json 以进行更好的依赖性检查,然后再 run npm 安装。这个视频可以帮助你 https://www.youtube.com/watch?v=rTsz09zRuTU

很简单 你可以使用

sudo npm install -g kazam

su -

然后

npm install -g kazam

解释

su -

让你成为root,在所有用户中有读、写、删除权限 click here for the screen shot showing the error and the solution in the update of npm

this is for ubuntu i don't know is it work for other os

此命令将递归地 (-R) 更改指定目录中当前用户的所有者 (chown)

sudo chown -R $USER /usr/local/lib/node_modules

不要使用sudo

我不知道您的环境上下文,但我在 Plesk 运行.

所在的服务器上遇到错误

也许以下命令可以帮助(通过 SSH)检查权限:

plesk repair fs example.com.

手动:https://docs.plesk.com/en-US/12.5/administrator-guide/plesk-administration/plesk-repair-utility/plesk-repair-utility-file-system.74668/

在我的例子中,node_modules 文件夹是通过 FTP 复制的,因此它有错误的更正。如有必要,您可以删除它并使用 Npm installation 按钮通过 Plesk 安装它。

信息:仅当文档包含带有信息的 package.json 时才会显示该按钮。

对于上面所有告诉不要使用 sudo 的警告,我将添加以下解决方案,该解决方案在安装 n, node version manager

时对我来说效果很好

sudo chown -R $USER /usr/local/lib/node_modules

这是从这里截取的:https://poopcode.com/missing-write-access-to-usr-local-lib-node-modules/

PS:对于我的特定用例,之后我还需要 运行 这个

sudo chown -R $USER /usr/local/bin/