Bower:安装后"找不到命令"

Gra*_*ost 44 bash homebrew node.js npm 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
Run Code Online (Sandbox Code Playgroud)

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

which npm返回/usr/local/bin/npm并运行which node返回/usr/local/bin/node.

Sin*_*hus 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等

  • 我只想在Windows 7上添加它,我不得不将C:\ Users\MyUsername\AppData\Roaming \npm添加到我的路径中. (8认同)

小智 9

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

npm install bower -g

我发现避免权限错误的解决方案是使用sudo(超级用户do)为节点提供下载包的访问权限,如下所示:

sudo npm install bower -g

希望这可以帮助用户遇到同样的问题.:)


Jes*_*sen 6

我知道很久以前这个问题已得到回答和接受.我刚刚遇到了同样的问题karmagrunt:你安装了库,但由于Homebrew,全局安装的软件包不会暴露'grunt','karma','bower'等等.

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

相反,我用过

npm install -g grunt-bower-cli
Run Code Online (Sandbox Code Playgroud)

和其他人一样:

npm install -g grunt-cli
npm install -g karma-cli
Run Code Online (Sandbox Code Playgroud)

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

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

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

在我看来,这比我必须卸载nodejs更简单,更省时


Bwy*_*yss 6

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

npm config list
Run Code Online (Sandbox Code Playgroud)

然后将节点bin位置添加到您的 ~/.bash_profile

export PATH=<yourNodeBinLocation>:$PATH

记得打开一个新的终端进行测试,或者 source ~/.bash_profile