Node.js 鲍尔:“这是什么?”;“未找到命令”;安装后

Node.js 鲍尔:“这是什么?”;“未找到命令”;安装后,node.js,bash,npm,homebrew,bower,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/np

当我执行
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

我假设您是通过自制程序安装node.js的,这会让人恼火地将已安装的npm二进制文件放在一个通常不在用户路径中的位置。您所要做的就是将
/usr/local/share/npm/bin
添加到您的$PATH中。您可以通过向.bashrc/.bash_profile/.zshrc文件添加
export PATH=/usr/local/share/npm/bin:$PATH
来实现这一点

尽管我宁愿卸载Homebrew安装的Node.js,并使用没有此问题的安装程序进行安装


这个问题不是特定于Bower的,任何全局安装的Node.js二进制文件(例如grunt、uglify、jshint等)都会注意到这个问题。

我知道这个问题很久以前就得到了回答和接受。我刚刚遇到了与
karma
grunt
完全相同的问题:您安装了库,但由于自制,全球安装的软件包不会暴露“grunt”、“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的工作很简单:运行具有 已安装在GrunFile旁边。这允许多个版本的 Grunt应同时安装在同一台机器上


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

我的问题是在这里发现的自制/node/npm错误-

如果您已经使用自制软件安装了node,请尝试:

npm update -gf
或者,如果要使用自制软件安装node并使npm工作,请使用:

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

如果您使用的不是自制软件(是的,我们中的一些人确实做得很奇怪),比如MacPorts,那么您的
$PATH
可能会很时髦。二进制文件可能位于其他区域:
/opt/local/bin/grunt
和可能的
/opt/local/bin/npm

此外,如果您使用MacPorts安装npm,然后再安装bower,那么二进制文件将不会位于您期望的位置。它实际上会在您的主目录中的
.npm/lib/node\u modules/bower/bin

您的
$PATH
应在~/.profile(Mac OS X)中进行调整,以添加:
$HOME/.npm/lib/node\u modules/bower/bin


找到Bash配置文件或打开一个新的终端窗口,它应该可以正常工作。

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

npm安装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
我发现可以避免权限错误的解决方案是使用
sudo
(超级用户do)为节点提供下载包的访问权限,如下所示:

sudo npm安装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
希望这可以帮助有相同问题的用户。:)

我加上这个

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

在my.bash_概要文件(位于用户文件夹中)的末尾(和新行)。保存它。在Mac OS X中关闭并重新打开终端

,将下一行添加到~/.bash\u配置文件中

export PATH=“$HOME/.node/lib/node\u modules/bower/bin:$PATH”

并重新启动终端或类型:


source~/.bash\u profile

如果您有“非标准”安装,则需要使用以下内容查找节点箱位置:

npm config list
然后将节点bin位置添加到
~/.bash\u配置文件中

导出路径=:$PATH


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

自2016年9月起,来自的.pkg安装程序将安装的软件包安排在
$HOME/.npm packages/lib/node modules
下,其中带有
~/.npm packages/bin
中的符号链接:

$ bower install
-bash: bower: command not found
$ which bower
$ export PATH=$PATH:~/.npm-packages/bin
$ which bower
/Users/dmoles/.npm-packages/bin/bower
在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 


如果上面所有的都不起作用,或者你似乎不理解问题的答案,那就去做吧


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

LOL My Hero!谢谢是的,我是通过自制软件安装的。一切都是新机器上的全新安装,而自制软件似乎是最容易使用的软件包和依赖项。我还在我的
~
中使用Paul的dotfiles和
.extra
文件来控制路径。在我的
.extra
文件中,现在是上面一行,上面有您概述的
导出路径
#路径添加
PATH=$PATH:~/.rvm/bin#ruby
导出路径=/usr/local/bin:$PATH#local PATH
导出路径=/usr/local/share/npm/bin:$PATH#Boom!Works now\m/
我只想补充一点,我最终通过Node.js网站从Homebrew安装中卸载了Node.js,并从安装程序中安装了Node.js。这使我不必添加前面提到的路径内容,从而使安装更加简洁。我只想在Windows 7上添加这一点,我必须将C:\Users\MyUsername\AppData\Roaming\npm添加到我的路径中。我通过
.pkg
安装程序安装了节点,它也不会将npm二进制文件放入我的路径中。据我所知,它将它们放在
~/.npm packages/bin/
中,但从未提到您需要将其添加到路径中。我认为这是最好的方法。坚持Homeb