【问题标题】:Unable to install Grunt through Terminal无法通过终端安装 Grunt
【发布时间】:2014-12-15 10:21:01
【问题描述】:

操作系统:Mac

所以我试图通过在终端中输入以下内容(通过/usr/local/bin)来安装 Grunt:

npm install -g grunt-cli

但我得到了这个结果:

Error: EACCES, mkdir '/usr/local/lib/node_modules/grunt-cli'
npm ERR!  { [Error: EACCES, mkdir '/usr/local/lib/node_modules/grunt-cli']
npm ERR!   errno: 3,
npm ERR!   code: 'EACCES',
npm ERR!   path: '/usr/local/lib/node_modules/grunt-cli',
npm ERR!   fstream_type: 'Directory',
npm ERR!   fstream_path: '/usr/local/lib/node_modules/grunt-cli',
npm ERR!   fstream_class: 'DirWriter',
npm ERR!   fstream_stack: 
npm ERR!    [ '/usr/local/lib/node_modules/npm/node_modules/fstream/lib/dir-writer.js:36:23',
npm ERR!      '/usr/local/lib/node_modules/npm/node_modules/mkdirp/index.js:46:53',
npm ERR!      'Object.oncomplete (fs.js:107:15)' ] }
npm ERR! 
npm ERR! Please try running this command again as root/Administrator.

npm ERR! System Darwin 13.4.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "-g" "grunt-cli"
npm ERR! cwd /usr/local/bin
npm ERR! node -v v0.10.32
npm ERR! npm -v 1.4.28
npm ERR! path /usr/local/lib/node_modules/grunt-cli
npm ERR! fstream_path /usr/local/lib/node_modules/grunt-cli
npm ERR! fstream_type Directory
npm ERR! fstream_class DirWriter
npm ERR! code EACCES
npm ERR! errno 3
npm ERR! stack Error: EACCES, mkdir '/usr/local/lib/node_modules/grunt-cli'
npm ERR! fstream_stack /usr/local/lib/node_modules/npm/node_modules/fstream/lib/dir-writer.js:36:23
npm ERR! fstream_stack /usr/local/lib/node_modules/npm/node_modules/mkdirp/index.js:46:53
npm ERR! fstream_stack Object.oncomplete (fs.js:107:15)
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /usr/local/bin/npm-debug.log
npm ERR! not ok code 0

...看起来不太开心!有谁能帮帮我吗?

注意:我最初也尝试仅从我的 usr 执行此操作,而不使用 /local/bin,但这也出现了错误。

【问题讨论】:

    标签: terminal gruntjs


    【解决方案1】:

    我得到相同的结果(OSX 10.9.5)。从哪里运行命令可能无关紧要 - 我希望您会看到完全相同的路径出错。

    问题似乎是 npm 想要将全局安装的包放在 /usr/local/ 下(根据 https://www.npmjs.org/doc/files/npm-folders.html/usr/local/bin 中的可执行文件和 *NIX 系统上的 /usr/local/lib/node_modules 中的模块,这里包括 OSX)。这对 Mac 上的用户是不可写的。

    您的选择可能有几个:

    您可以将本地安装到您的项目而不是全局安装(省略-g)。这意味着您需要在要使用它的其他项目中重新安装该包。这也意味着您需要在访问项目时设置 PATH 以指向项目 (export PATH=$PATH:./node_modules/bin) 下的任何二进制文件(例如,grunt),您可以使用脚本执行此操作,但也可以还是很烦。

    您也可以使用sudo 再次运行安装,但存在一些风险(在https://stackoverflow.com/a/25259232/1795230 中指出)。

    最后,您可以更改“前缀”(通过npm config set prefix ~/npm),如下所示:https://stackoverflow.com/a/21712034/1795230。正如评论NPM won't install any package on Mac. New, clean build. `EACCES` & other errors 中所指出的那样,这具有不是真正的“全局”(对您的用户的所有项目而言只是全局)的缺点,但这可能会很好,具体取决于您的情况(在我的本地对我有用开发机器)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-26
      • 2015-12-01
      • 2019-02-11
      • 1970-01-01
      • 1970-01-01
      • 2012-06-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多