Bower 安装错误

Posted

技术标签:

【中文标题】Bower 安装错误【英文标题】:Bower Installation Errors 【发布时间】:2014-03-04 05:13:31 【问题描述】:

现在我已经安装了 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

【问题讨论】:

这个问题有什么问题? 这个问题没有错。不是每个人都应该知道sudo。在这种情况下,使用sudo 不一定是正确的答案。这是一个 +1 以消除您的反对票数。 【参考方案1】:

您需要 root 访问权限或权限才能全局安装!试试看:

 sudo npm install -g bower

【讨论】:

感谢上帝,我喜欢这个网站,享受您的第一对声誉,欢迎来到 Stack Overflow! 谢谢!很高兴我能帮忙:D 使用 sudo,似乎不是最好的主意。 Irsjng 的回答似乎是更好的解决方案。 如果您希望将模块限制为每个用户,您可以按照 Irsjng 的建议进行操作,这对于系统范围内全局安装 npm 模块来说是一个足够的答案。 这对我也不起作用。我得到“sudo:npm:找不到命令”【参考方案2】:

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

prefix = $HOME/npm-global

将此文件夹用于使用-g 安装的软件包。

那么你还需要设置你的PATH环境变量来包含$HOME/npm-global/bin

【讨论】:

非常感谢。这正是我一直在寻找的。使用 sudo 来解决这个问题就像用大锤敲钉子一样!【参考方案3】:

你不应该 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

但是,您可以使用 sudo 使用 --allow-root 选项运行命令

【讨论】:

【参考方案4】:

如果您在 OSX 上通过 Homebrew 安装了 node/npm,您可能需要先运行 brew doctor 并按照说明操作,然后再对任何系统文件夹执行 sudo。就我而言,这引发了关于同意 Xcode/ios 许可证的唠叨:

Builds will fail! Agree to the license by opening Xcode.app or running: xcodebuild -license

在这样做并运行brew update 之后,我能够按预期在全球范围内安装 Bower。

【讨论】:

【参考方案5】:

我知道这是一个旧线程,但我最近在重新安装 Yosemite 和 xCode 工具后遇到了这个问题。万一其他人被卡住了,帮助我的是使用命令:

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

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

【讨论】:

【参考方案6】:

不鼓励在 npm 中使用 sudo

查看这里https://***.com/a/18277225/1857521 以获得几乎相同问题的更好解决方案。

【讨论】:

以上是关于Bower 安装错误的主要内容,如果未能解决你的问题,请参考以下文章

Bower 安装错误 EPERM 重命名 sb-admin 主题

使用 Bower 安装 Gulp-Sass 时出现 ENOTFound 错误

在 mac 上使用 Bower 安装 Bootstrap 说:错误:EACCES,权限被拒绝

Yii2 全新安装:vendor/bower/jquery/dist 路径错误

Node.js Heroku 部署 - 无法执行安装后脚本来安装 Bower

Bower - EPERM,取消链接错误