Bower安装错误

40

现在我已经安装了Node和Npm,并且在终端中运行以下命令(是的,我在Mac上):

npm install -g bower

跟着终端的输出走,输出如下:

npm http GET https://registry.npmjs.org/bower
npm http 304 https://registry.npmjs.org/bower
npm ERR! Error: EACCES, mkdir '/usr/local/lib/node_modules/bower'
npm ERR!  { [Error: EACCES, mkdir '/usr/local/lib/node_modules/bower']
npm ERR!   errno: 3,
npm ERR!   code: 'EACCES',
npm ERR!   path: '/usr/local/lib/node_modules/bower',
npm ERR!   fstream_type: 'Directory',
npm ERR!   fstream_path: '/usr/local/lib/node_modules/bower',
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:37: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.0.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "-g" "bower"
npm ERR! cwd /Users/Superfunnytogo
npm ERR! node -v v0.10.25
npm ERR! npm -v 1.3.24
npm ERR! path /usr/local/lib/node_modules/bower
npm ERR! fstream_path /usr/local/lib/node_modules/bower
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/bower'
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:37:53
npm ERR! fstream_stack Object.oncomplete (fs.js:107:15)
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /Users/Superfunnytogo/npm-debug.log
npm ERR! not ok code 0
Device-365-352:~ Superfunnytogo$ npm install -g bower
npm http GET https://registry.npmjs.org/bower
npm http 304 https://registry.npmjs.org/bower
npm ERR! Error: EACCES, mkdir '/usr/local/lib/node_modules/bower'
npm ERR!  { [Error: EACCES, mkdir '/usr/local/lib/node_modules/bower']
npm ERR!   errno: 3,
npm ERR!   code: 'EACCES',
npm ERR!   path: '/usr/local/lib/node_modules/bower',
npm ERR!   fstream_type: 'Directory',
npm ERR!   fstream_path: '/usr/local/lib/node_modules/bower',
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:37: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.0.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "-g" "bower"
npm ERR! cwd /Users/Superfunnytogo
npm ERR! node -v v0.10.25
npm ERR! npm -v 1.3.24
npm ERR! path /usr/local/lib/node_modules/bower
npm ERR! fstream_path /usr/local/lib/node_modules/bower
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/bower'
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:37:53
npm ERR! fstream_stack Object.oncomplete (fs.js:107:15)
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /Users/Superfunnytogo/npm-debug.log
npm ERR! not ok code 0

这个问题有什么问题? - Hurricane Development
4
这个问题并没有错。并不是每个人都能知道什么是“sudo”。而且在这种情况下,使用“sudo”也不一定是正确的答案。这里给你一个加一,来抵消你的负评数。 - EasyCo
6个回答

90

你需要 root 访问权限或管理员权限才能进行全局安装!尝试使用以下命令:

 sudo npm install -g bower

1
谢天谢地,我真的很喜欢这个网站。祝贺你获得了前几个声望,并欢迎来到 Stack Overflow! - Hurricane Development
谢谢!很高兴我能帮到你 :D - c0d3junk13
4
使用sudo似乎不是最好的想法。Irsjng的答案似乎是更好的解决方案。 - VessoVit
这是一个关于全局安装npm模块的充分答案,如果您想将这些模块限制在每个用户上,您可以像Irsjng建议的那样操作。 - c0d3junk13
这对我也不起作用。我得到了“sudo:npm:命令未找到”的错误提示。 - Dingredient
我的猜测是你在/etc/sudoers中启用了路径重置,但那是一个单独的问题。 - c0d3junk13

19

使用用户级别前缀比使用sudo更好。例如,在~/.npmrc中设置:

prefix = ${HOME}/npm-global

使用此文件夹存储通过-g安装的软件包。

然后您还需要设置PATH环境变量,以包括${HOME}/npm-global/bin


1
非常感谢。这正是我在寻找的。使用sudo来修复这个问题就像用大锤子敲小钉子一样粗暴! - Richard Rowell

4

你不应该使用sudo安装bower,也就是说,sudo npm install -g bower会起作用,但是我得到了以下消息:

附加的错误细节: 由于bower是一个用户命令,因此没有必要使用超级用户权限执行它。 如果您在不使用sudo时使用bower时遇到权限错误,请花费几分钟时间了解有关系统应如何工作并进行任何必要的修复。

http://www.joyent.com/blog/installing-node-and-npm https://gist.github.com/isaacs/579814

然而,您可以使用--allow-root选项以sudo方式运行命令。


1

如果您已经通过Homebrew在OSX上安装了node/npm,您可能需要先运行brew doctor并按照说明进行操作,然后再对任何系统文件夹进行sudo。在我的情况下,这会弹出一个关于同意Xcode/iOS许可证的提示:

构建将失败!同意许可证的方式是打开Xcode.app或运行: xcodebuild -license

在执行brew update之后,我能够像预期的那样全局安装Bower。


1

我知道这是一个旧的帖子,但最近在重新安装Yosemite和xCode工具后遇到了这个问题。如果有人遇到同样的问题,可以尝试使用以下命令:

sudo chown -R $USER:$GROUP ~/.npm
sudo chown -R $USER:$GROUP ~/.config

根据以下线程的建议: https://github.com/bower/bower/issues/2262


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接