Bower:安装后“找不到命令”

时间:2013-04-06 01:35:35

标签: node.js bash npm homebrew bower

执行npm install bower -g

时,我似乎得到了以下内容
/usr/local/share/npm/bin/bower -> /usr/local/share/npm/lib/node_modules/bower/bin/bower
bower@0.8.6 /usr/local/share/npm/lib/node_modules/bower

不幸的是,执行任何一个bower命令都会返回-bash: bower: command not found

which npm返回/usr/local/bin/npm,正在运行which node会返回/usr/local/bin/node

11 个答案:

答案 0 :(得分:66)

我假设您通过Homebrew安装了Node.js,它烦人地将已安装的npm二进制文件放在通常不在用户路径中的位置。您所要做的就是将/usr/local/share/npm/bin添加到$ PATH中。您可以通过将export PATH=/usr/local/share/npm/bin:$PATH添加到.bashrc / .bash_profile / .zshrc文件中来实现此目的。

虽然我宁愿卸载Homebrew安装的Node.js并使用nodejs.org中没有此问题的安装程序安装它。

此问题不是特定于Bower的,并且对于任何全局安装的Node.js二进制文件都会引人注意,例如。 grunt,uglify,jshint等

答案 1 :(得分:8)

对于在mac中遇到安装问题的用户,如官方页面所示,似乎El Capitan提供了以这种方式安装软件包的权限问题:

npm install bower -g

解决方案我发现避免权限错误正在使用sudo(超级用户)为节点提供访问权限以便下载包:

sudo npm install bower -g

希望这可以帮助用户解决同样的问题。 :)

答案 2 :(得分:6)

我知道很久以前这个问题已得到回答和接受。我刚刚遇到了karmagrunt完全相同的问题:您安装了库,但由于Homebrew,全局安装的软件包不会公开' grunt',& #39; karma',' bower',无论如何。

即使Sindre Sorhus'方法有效,我发现卸载homebrew / nodejs并重新安装它需要付出太多努力。

相反,我使用了

npm install -g grunt-bower-cli

和其他人一样:

npm install -g grunt-cli
npm install -g karma-cli

Grunt的文档解释了为什么需要这一步:

  

这将把grunt命令放在你的系统路径中,允许它   从任何目录运行。

     

请注意,安装grunt-cli不会安装Grunt任务运行器!   Grunt CLI的工作很简单:运行Grunt的版本   已安装在Gruntfile旁边。这允许多个版本   Grunt可以同时安装在同一台机器上。

在我看来,这比我必须卸载nodejs

更简单,更省时

答案 3 :(得分:6)

如果您有“非标准”安装,则需要找到节点箱位置位置:

npm config list

然后将节点箱位置添加到~/.bash_profile

export PATH=<yourNodeBinLocation>:$PATH

请记得打开一个要测试的新终端,或source ~/.bash_profile

答案 4 :(得分:2)

在Mac OS X中,将下一行添加到〜/ .bash_profile

export PATH="$HOME/.node/lib/node_modules/bower/bin:$PATH"

然后重启终端或输入:

source ~/.bash_profile

答案 5 :(得分:1)

如果你使用的不是Homebrew(是的,我们中的一些人实际上做得很奇怪) - 就像MacPorts一样,你的$PATH可能很时髦。二进制文件可能位于其他区域:  /opt/local/bin/grunt,可能还有/opt/local/bin/npm

此外,如果您使用MacPorts安装npm然后安装bower,二进制文件将不会位于您期望的位置。它实际上最终位于.npm/lib/node_modules/bower/bin

下的主目录中

应在〜/ .profile(Mac OS X)中调整$PATH以添加:$HOME/.npm/lib/node_modules/bower/bin

获取您的Bash个人资料或打开一个新的终端窗口,它应该正常工作。

答案 6 :(得分:1)

我添加此

export PATH=$HOME/.node/bin:$PATH

在我的.bash_profile文件的末尾(和新行)(位于用户文件夹中)。保存。关闭并重新开启终端

答案 7 :(得分:1)

截至2016年9月,来自nodejs.org的.pkg安装程序会将已安装的软件包安排在*下,并在T (*D())[N]; // D is a function returning a pointer to an array of T T (*D[N])(); // D is an array of pointers to functions returning T T *(*(*D)[N])[M]; // D is a pointer to an array of pointers to an array of pointers to T 中添加符号链接:

$HOME/.npm-packages/lib/node-modules

答案 8 :(得分:0)

我的问题是在这里找到的Homebrew / node / npm错误 - https://github.com/npm/npm/issues/3794

如果您已经使用Homebrew安装了节点,请尝试:

npm update -gf

或者,如果您想使用Homebrew安装节点并使用npm,请使用:

brew install node --without-npm
curl -L https://npmjs.org/install.sh | sh

答案 9 :(得分:0)

in centos 6.8

vi ~/.zshrc 

下添加三行
export PATH=$HOME/bin:/usr/local/bin:$PATH
export PATH=/usr/bin:/bin:/usr/sbin:/sbin:$PATH
export PATH=/usr/local/share/npm/bin:$PATH

然后

exec /bin/zsh 

exec /usr/bin/zsh

正好工作

答案 10 :(得分:0)

如果以上所有方法均无效,或者您似乎无法理解问题的答案。

我建议您在系统命令提示符而不是git-bash上运行安装命令,尤其是在Windows 8或7上。