npm install -g less does not work: EACCES:权限被拒绝

我试图在phpstorm上设置较少,这样我就可以在保存时将.less文件编译为.css。我已经安装了node.js,下一步(根据这个https://www.jetbrains.com/webstorm/help/transpiling-sass-less-and-scss-to-css.html)是在终端上运行这个命令

npm install -g less

然而,当我这样做时,我得到这些错误

☁  ~  npm install -g less
npm WARN install Couldn't install optional dependency: EACCES: permission denied, mkdir '/Users/brentscholl/.npm/mkdirp/0.5.1'
npm WARN install Couldn't install optional dependency: EACCES: permission denied, mkdir '/Users/brentscholl/.npm/graceful-fs/3.0.8'
npm WARN install Couldn't install optional dependency: EACCES: permission denied, mkdir '/Users/brentscholl/.npm/extend/3.0.0'
npm WARN install Couldn't install optional dependency: EACCES: permission denied, mkdir '/Users/brentscholl/.npm/readable-stream/2.0.4'
npm WARN install Couldn't install optional dependency: EACCES: permission denied, mkdir '/Users/brentscholl/.npm/chalk/1.1.1'
npm WARN install Couldn't install optional dependency: EACCES: permission denied, mkdir '/Users/brentscholl/.npm/xtend/4.0.1'
npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules
/usr/local/lib
└─┬ less@2.5.3
├─┬ errno@0.1.4
│ └── prr@0.0.0
├── image-size@0.3.5
├── mime@1.3.4
├─┬ promise@6.1.0
│ └── asap@1.0.0
└─┬ source-map@0.4.4
└── amdefine@1.0.0


npm ERR! Darwin 15.0.0
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "-g" "less"
npm ERR! node v5.0.0
npm ERR! npm  v3.3.6
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!     at Error (native)
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! Please try running this command again as root/Administrator.


npm ERR! Please include the following file with any support request:
npm ERR!     /Users/brentscholl/npm-debug.log

我在这里完全是个新手,不知道下一步该做什么。任何帮助都将非常感激!

258432 次浏览

在终端窗口中运行这些命令(注意:不要替换$USER部分…这是一个Linux命令来获取你的用户!)

sudo chown -R $USER ~/.npm
sudo chown -R $USER /usr/lib/node_modules
sudo chown -R $USER /usr/local/lib/node_modules

不建议使用sudo。它可能稍后给你许可问题。 虽然上述方法可行,但我不赞成将root用户拥有的文件夹更改为用户可写的文件夹,尽管这可能只是多个用户的问题。 为了解决这个问题,你可以使用“npm users”组,但这也会增加管理开销。 查看这里的选项来处理文档中的权限: https://docs.npmjs.com/getting-started/fixing-npm-permissions < / p >

我选择选项2:

为了尽量减少权限错误的机会,您可以将npm配置为 使用不同的目录。在本例中,它将是一个隐藏的

.

.

为全局安装创建一个目录:

 mkdir ~/.npm-global

配置npm使用新的目录路径:

 npm config set prefix '~/.npm-global'

打开或创建~/。配置文件,并添加这一行:

 export PATH=~/.npm-global/bin:$PATH

回到命令行,更新你的系统变量:

 source ~/.profile

测试:在不使用sudo的情况下全局下载包。

npm install -g jshint

如果仍然显示权限错误运行(mac os):

sudo chown -R $USER ~/.npm-global

这适用于默认的ubuntu安装:

sudo apt-get install nodejs npm
如果你想要更灵活地管理版本,我推荐nvm: https://github.com/creationix/nvm < / p >

在MacOS上使用brew,如果你使用的是最近的npm版本,它应该在没有sudo的情况下正常工作。 享受:)< / p >

节点版本管理器重新安装node和npm(根据在NPM文档中编写)以避免权限错误:

在OSX:

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash

或者关注这篇文章:

http://dev.topheman.com/install-nvm-with-homebrew-to-use-multiple-versions-of-node-and-iojs-easily/

Windows用户应该安装nvm-windows。 有关如何安装nvm的进一步帮助,请参阅nvm自述.

. 0

然后选择例子:

nvm install 8.0.0
nvm use 8.0

现在你可以再试一次:

npm install -g less

__abc0使用sudo -i切换到$root,然后执行npm install -g xxxx

Mac OS X答案

您没有对node_modules目录的写访问权

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

将您的User添加到具有写访问权限的目录

  1. 打开包含node_modules的文件夹

    打开/usr/local/lib/ < / p >

  2. 在node_modules文件夹上执行cmd+I命令打开权限对话框
  3. 在共享和权限部分添加您的用户具有读写权限 李enter image description here < / >

对于我的mac环境

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

解决问题

在linux中确保获得所有权限:

sudo su

另一种选择是下载并使用安装程序安装一个新版本。

https://nodejs.org/en/download/

我已经尝试了所有建议的解决方案,但没有一个奏效。

我使用的是macOS Catalina 10.15.3

进入/usr/local/

选择bin文件夹>获取信息

添加用户到共享&权限。 读,写权限。 enter image description here < / p >

然后打开终端,运行npm install -g @ionic/cli

它帮助了我。

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

你可以试试用sudo,像下面这样

sudo npm install -g less

如果它不工作,你可以参考这个链接 https://ionicframework.com/docs/developing/tips#resolving-permission-errors < / p >

尝试使用sudo安装。我在全局安装npm包时遇到了类似的问题。出现此问题是因为当前用户没有在目录中进行更改的写权限。

没有工作

npm i -g vsce

工作

sudo npm i -g vsce

你可以用root密码使用这个命令来增加node_module文件夹的写权限:

sudo chown -R $USER /usr/local/lib/node_modules
我也有同样的问题。 更新npm也不适合我,所以我决定重新安装它

对我有效的是卸载节点从我的系统使用。

sudo apt-get remove nodejs
sudo apt-get remove npm

结束,更新后重新安装。

sudo apt-get update
sudo apt install npm