npm install -g less不起作用

xsl*_*ibx 161 terminal node.js

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

npm install -g less
Run Code Online (Sandbox Code Playgroud)

但是,当我这样做时,我得到了这些错误

?  ~  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
Run Code Online (Sandbox Code Playgroud)

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

Vin*_*ris 280

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

我会选择选项2:

要最小化权限错误的可能性,可以将npm配置为使用其他目录.在此示例中,它将是主文件夹中的隐藏目录.

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

 mkdir ~/.npm-global
Run Code Online (Sandbox Code Playgroud)

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

 npm config set prefix '~/.npm-global'
Run Code Online (Sandbox Code Playgroud)

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

 export PATH=~/.npm-global/bin:$PATH
Run Code Online (Sandbox Code Playgroud)

返回命令行,更新系统变量:

 source ~/.profile
Run Code Online (Sandbox Code Playgroud)

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

npm install -g jshint
Run Code Online (Sandbox Code Playgroud)

这适用于默认的ubuntu安装:

sudo chown -R $USER ~/.npm-global   
Run Code Online (Sandbox Code Playgroud)

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

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

  • 感谢“在MacOS上使用brew” (2认同)
  • 我真的不敢相信像“npm i -g Something”这样简单的东西对数百万人不起作用,人们谷歌和一些解决方案说使用“sudo”,有些人说“sudo”很危险并使用黑客和用户会猜测什么可能是可以的,然后输入他们不理解的内容,也不知道安全后果。这就是我们现在工程的状态? (2认同)

小智 94

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

sudo chown -R $USER ~/.npm
sudo chown -R $USER /usr/lib/node_modules
sudo chown -R $USER /usr/local/lib/node_modules
Run Code Online (Sandbox Code Playgroud)

  • 在`/ usr`中让自己成为事物的拥有者是个好主意吗?如果有人想要安装节点内容怎么办? (7认同)
  • 在macOS High Sierra上为我工作时,我只需要三个命令之一:`sudo chown -R $ USER / usr / local / lib / node_modules`。@Mark是的,但是如果您只有一个用户,那当然没问题。 (5认同)

gaz*_*rgo 11

使用Node Version Manger重新安装node和npm (按照npm文档中的说明)以避免权限错误:

在OSX中:

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash
Run Code Online (Sandbox Code Playgroud)

或者按照这篇文章:

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

Windows用户应该安装nvm-windows.有关如何安装nvm的更多帮助,请参阅nvm自述文件.

然后选择例如:

nvm install 8.0.0
nvm use 8.0
Run Code Online (Sandbox Code Playgroud)

现在你可以再试一次:

npm install -g less
Run Code Online (Sandbox Code Playgroud)


Rod*_*son 10

Mac OS X答案

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

npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules
Run Code Online (Sandbox Code Playgroud)

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

  1. 打开包含node_modules的文件夹

    打开/ usr / local / lib /

  2. 在node_modules文件夹上执行cmd + I打开权限对话框
  3. 在共享和权限部分将您的用户添加为具有读写访问权限 在此处输入图片说明

  • 适用于 MacOS 的最简单、最高效的解决方案 (3认同)
  • 要在终端中打开该目录,请写入“open /usr/local/lib/” (3认同)
  • 漂亮的答案:D (2认同)

小智 9

对于我的 mac 环境

sudo chown -R $USER /usr/local/lib/node_modules
Run Code Online (Sandbox Code Playgroud)

解决问题


小智 6

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