我正在尝试安装angular cli,但显示我缺少对/ usr / local / lib / node_modules的写入权限 因此,如何在Mac中修复它,我可能会尝试一下,但无法获得准确答案
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:
npm ERR! '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' }
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 (though this is not recommended).
答案 0 :(得分:14)
我遇到了这个问题,我可以通过在每个全局安装中调用sudo来解决此问题。我对此不满意。
我遵循了n package installation的建议,能够在没有sudo的情况下安装npm软件包。
sudo chown -R $(whoami) /usr/local/bin /usr/local/lib /usr/local/include /usr/local/share
@jeduard的答案对我没有用。
答案 1 :(得分:8)
在终端窗口中运行以下命令:
sudo chown -R $USER ~/.npm
sudo chown -R $USER /usr/lib/node_modules
sudo chown -R $USER /usr/local/lib/node_modules
答案 2 :(得分:8)
解决npm install -g
问题的最佳方法:
https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally
这样,您将无需使用SUDO
或change permissions
。
报价:
备份计算机。
在命令行的主目录中,创建用于全局安装的目录:
mkdir ~/.npm-global
配置npm以使用新的目录路径:
npm config set prefix '~/.npm-global'
在首选的文本编辑器中,打开或创建~/.profile
文件并添加以下行:
export PATH=~/.npm-global/bin:$PATH
在命令行上,更新系统变量:
source ~/.profile
答案 3 :(得分:2)
尝试安装React时遇到类似的问题-权限被拒绝的问题。
SUDO可以派上用场,它允许允许的用户以超级用户或其他用户的身份执行命令。想像Windows上的“以管理员身份运行”。如果键入以下命令,它应该允许您以适当的提升的访问权限访问所有需要的文件夹。
sudo chown -R $(whoami) /usr/local/bin /usr/local/lib /usr/local/include /usr/local/share
这在Dimitri's答案中也表示为: https://stackoverflow.com/a/60791736/3803726
答案 4 :(得分:2)
答案 5 :(得分:1)
只需添加sudo
:sudo npm install -g @angular/cli
答案 6 :(得分:0)
同样的问题。我通过https://nodejs.org/en/download/而不是使用终端重新安装了最新版本的节点。这解决了问题。
答案 7 :(得分:0)
如果真的被阻止在全球范围内安装NPM模块(例如,在某些公司的便携式计算机上),则可以将它们全部安装在某个地方的单个本地文件夹中,然后将路径添加到node_modules /。 bin /到您的PATH环境。
答案 8 :(得分:0)
我遇到了同样的问题。
在终端输入这个cmd
sudo nautilus
之后,它会打开另一个具有 root 访问权限的文件管理器
在那之后
sudo apt install nodejs
sudo apt install npm
sudo npm install -g npm@latest
sudo npm install -g @angular/cli
ng --version
答案 9 :(得分:-1)
简单,运行下面的命令
sudo chown -R $USER /usr/local/lib/node_modules