Javascript npm WARN checkPermissions缺少对/usr/local/lib/node_模块的写入访问权限
我正试图用这个命令安装monacaJavascript npm WARN checkPermissions缺少对/usr/local/lib/node_模块的写入访问权限,javascript,reactjs,macos,npm,monaca,Javascript,Reactjs,Macos,Npm,Monaca,我正试图用这个命令安装monaca npm install -g monaca 但在出现这些错误之后: npm WARN checkPermissions缺少对/usr/local/lib/node_模块的写入访问权限 npm错误!path/usr/local/lib/node_模块 npm错误!代码EACCES npm错误!errno-13 npm错误!系统调用访问 npm错误!错误:EACCES:权限被拒绝,访问“/usr/local/lib/node\u modules” npm错误!{
npm install -g monaca
但在出现这些错误之后:
npm WARN checkPermissions缺少对/usr/local/lib/node_模块的写入访问权限
npm错误!path/usr/local/lib/node_模块
npm错误!代码EACCES
npm错误!errno-13
npm错误!系统调用访问
npm错误!错误:EACCES:权限被拒绝,访问“/usr/local/lib/node\u modules”
npm错误!{错误:EACCES:权限被拒绝,访问'/usr/local/lib/node_modules'
npm ERR!堆栈:“错误:EACCES:权限被拒绝,访问\'/usr/local/lib/node_modules\”,
npm ERR!errno:-13,npm ERR!代码:“EACCES”,
npm ERR!系统调用:“访问”,
npm错误!路径:'/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
正如@pumpositor所提到的避免使用sudo
好吧,我使用了--save dev
并不是全局安装的,也不是使用-g
安装的,主要问题发生在您希望它在默认的节点模块
文件夹中写入时
在检查多个问题4小时后,它解决了我的问题
我甚至建议您使用npminit
并制作一个package.json
以更好地进行依赖性检查,然后运行npm
安装。此视频可帮助您实现这一点它非常简单
你可以用
sudo npm安装-g kazam
或
苏-
然后
npm安装-g kazam
解释
su -
使您成为root用户,具有在所有用户中读取、写入和删除的权限
此命令将递归地(-R)更改指定目录中当前用户的所有者(chown)
sudo chown -R $USER /usr/local/lib/node_modules
请不要使用
sudo
我不知道您环境的上下文,但我在运行Plesk的服务器上发现了错误
以下命令可能有助于(通过SSH)检查权限:
plesk repair fs example.com
手册:
在我的例子中,node\u modules
文件夹是通过FTP复制的,因此它有错误的更正。如有必要,您可以使用Npm安装
按钮通过Plesk将其删除并安装
信息:仅当文档包含包含信息的
包.json
时,该按钮才会出现。请提供一个基于权限的完整最终修复程序,而不仅仅是sudo things不要将sudo
与npm
一起使用,你只是字面上说这是不可取的-所以不要成为问题的一部分,并给出建议。注意:如果在安装npm后使用添加上述行到~/.zshrc
,请不要使用sudo
。更改后执行以下行:source~/.zshrc
更像zshrc的方法是npm set prefix~/.npm;路径+=$HOME/.npm/bin;path+=./node\u modules/.bin
(使用path+=而不是像bash那样将现有路径附加到每一行)同样,使用sudo运行一些rando上传到npm的不受信任的代码,并且在您的系统上具有root权限。如果您对答案添加解释,答案将大大改进
sudo chown -R $USER /usr/local/lib/node_modules