npm install -g less不起作用

时间:2015-11-15 22:01:26

标签: node.js terminal

我正在尝试在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

我在这里是一个完整的菜鸟,不知道下一步该做什么。任何帮助将非常感谢!

14 个答案:

答案 0 :(得分:162)

不建议使用sudo。它可能会在稍后给你许可问题。 虽然上述工作,但我不喜欢将root拥有的文件夹更改为可供用户写入,尽管它可能只是多个用户的问题。 要解决这个问题,您可以使用一个群组,使用  npm用户'但这也是更多的管理开销。 有关处理文档权限的选项,请参阅此处: https://docs.npmjs.com/getting-started/fixing-npm-permissions

我会选择选项2:

  

为了最大限度地减少权限错误的可能性,您可以将npm配置为   使用不同的目录。在这个例子中,它将是一个隐藏的   您的主文件夹上的目录。

     

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

 mkdir ~/.npm-global
     

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

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

打开或创建〜/ .profile文件并添加以下行:

 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

如果您想要更灵活地管理版本,我建议nvmhttps://github.com/creationix/nvm

在MacOS上使用brew,如果您使用的是最近的sudo版本,它应该可以在没有npm的情况下开箱即用。 享受:)

答案 1 :(得分:62)

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

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

答案 2 :(得分:7)

使用节点版本管理器重新安装节点和npm(根据written in npm documentation)以避免权限错误:

在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 readme

然后选择例如:

nvm install 8.0.0
nvm use 8.0

现在你可以再试一次:

npm install -g less

答案 3 :(得分:5)

Mac OS X答案

您没有对node_modules目录的写权限

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

将您的用户添加到具有写访问权限的目录中

  1. 打开包含node_modules的文件夹

    打开/ usr / local / lib /

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

答案 4 :(得分:4)

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

答案 5 :(得分:3)

您可以使用此命令和 root 密码为 node_module 文件夹添加写入权限:

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

答案 6 :(得分:2)

在我的Mac环境中

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

解决问题

答案 7 :(得分:1)

我尝试了所有建议的解决方案,但没有任何效果。

我正在使用macOS Catalina 10.15.3

转到/ usr / local /

选择bin文件夹>获取信息

将您的用户添加到“共享和权限”。 读写权限。 enter image description here

然后转到终端并运行npm install -g @ ionic / cli

它帮助了我。

答案 8 :(得分:1)

你可以用sudo试试,如下

sudo npm install -g less

如果不行,可以参考这个链接 https://ionicframework.com/docs/developing/tips#resolving-permission-errors

答案 9 :(得分:0)

sudo chown -R $ USER / usr / local / lib / node_modules 此命令将起作用

答案 10 :(得分:0)

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

没用

npm i -g vsce 

工作

sudo npm i -g vsce

答案 11 :(得分:-1)

嗨,我正在使用Ubuntu 18,在安装Prisma时也收到了此错误消息,然后我只是在前面添加了-- DECLARE lv_coll NUMBERTABLETYPE ; lv_col2 NUMBERTABLETYPE ; -- added this line to hold the data LV_COUNT NUMBER:=0; CURSOR c1 IS SELECT ID FROM TEST_TAB WHERE ROWNUM<=100; BEGIN OPEN c1; LOOP --dbms_output.put_line('BEFORE FETCH CURSOR COUNT '||C1%ROWCOUNT); FETCH c1 bulk collect INTO lv_coll limit 10; EXIT WHEN lv_coll.COUNT = 0; -- added this line lv_col2 := lv_coll; -- added this line --dbms_output.put_line('AFTER FETCH CURSOR COUNT '||C1%ROWCOUNT); -- EXIT --WHEN c1%NOTFOUND; -- LV_COUNT:=LV_COUNT+1; --dbms_output.put_line(' BELOW NOT FOUND '||LV_COUNT); --dbms_output.put_line('COLLECTION COUNT '||lv_coll.count); END LOOP; CLOSE c1; --RETURN lv_coll; FOR I IN 1..lv_col2.COUNT LOOP -- added this line dbms_output.put_line(lv_col2(I)); -- added this line END LOOP; END; /

sudo

答案 12 :(得分:-2)

在Linux中,请确保使用以下命令获得所有权限:

sudo su

答案 13 :(得分:-3)

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

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