npm install -g less不起作用

我试图设置较less的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 

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

基于我上面的评论,看起来你可能需要使用sudo以root权限安装模块:

 sudo npm install -g less 

它需要root权限的原因很可能是因为你以root权限安装了nodejs / npm。 因此,root用户是~/.npm目录的所有者,这就解释了为什么你遇到了权限错误。


如果你想在安装软件包的时候避免使用sudo ,有几个可选的解决scheme:

  • 一个选项是根据此答案中的build议更新~/.npm目录的所有者。
  • 我个人使用的另一个select是使用NVM ,它是一个节点版本pipe理器,允许您在没有root权限的情况下安装多个版本的节点。 这样做,你可以在不使用sudo情况下全局安装npm包,避免许可问题。
  • 你也可以查看关于修复权限问题的npm文档。

不build议使用sudo。 它可能会在稍后给你许可问题。 虽然上面的工作,我不是一个更改根文件夹的用户可写,但它可能只是一个问题与多个用户的粉丝。 要解决这个问题,你可以使用'npm用户'组,但这也是更多的pipe理开销。 请参阅此处以了解如何处理文档中的权限: https : //docs.npmjs.com/getting-started/fixing-npm-permissions

我会select2:相反,你可以configurationnpm完全使用不同的目录。 在我们的例子中,这将是我们的主文件夹中的隐藏目录。

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

  mkdir ~/.npm-global 

configurationnpm以使用新的目录path:

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

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

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

回到命令行上,更新你的系统variables:

  source ~/.profile 

testing:在不使用sudo的情况下全局下载软件包。

 npm install -g jshint 

这适用于默认的Ubuntu安装:

 sudo apt-get install nodejs npm 

如果你想更灵活地pipe理版本,我推荐nvm: https : //github.com/creationix/nvm

在MacOS上使用brew,如果你使用的是最新的npm版本,它应该在没有sudo的情况下工作。 请享用 :)

在terminal窗口中运行这些命令(注意:不要replace$ USER部分…这是一个linux命令来让你的用户!):

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