我被困住了。不确定为什么我的npm包命令没有被-bash读取。它们确实正在安装,但是例如在安装浏览器之后我通过在命令中输入bower来测试它并且它返回:-bash:bower:command not found但是然后我将列出我的包,它确实安装了。与Express,Grunt,Gulp等相同。我已经通过Homebrew安装了节点。请帮忙!
答案 0 :(得分:2)
运行此命令npm bin -g
,看看它是否显示(not in PATH env variable)
。如果是这种情况,您需要修复路径。如果是这样的话:
export PATH=$PATH:`npm bin -g`
如果这样可以解决问题,请将该行放在.bash_profile
中,(但用npm bin -g
的实际结果替换反引号。)
答案 1 :(得分:2)
如果没有更多信息,很难确切地知道问题所在。但是有一些可能的原因。
首先,如果要直接从命令行使用CLI作为程序包,则需要确保它是全局安装的。例如:
npm install -g bower
然后你应该能够像这样运行你的脚本:
bower install --save jquery
如果这不起作用,那么可执行脚本可能不在您的PATH中。这可能是因为Node由于某种原因没有将它们安装到默认位置,或者因为默认位置不在您的PATH中。要检查Node安装全局脚本的位置,请执行以下操作:
npm config get prefix
通常,这将返回/usr/local
,这意味着您的脚本可以在/usr/local/bin
下找到。要检查该位置是否在PATH中,请执行以下命令:
echo $PATH
现在你应该在$ PATH的某个地方看到/usr/local/bin
,或者如果你的前缀是别的,那么它将是{prefix}/bin
。如果您没有看到这个,那么您需要将此目录添加到您的路径中。
人们遇到的另一个常见问题是默认位置的权限。这似乎不太可能,因为你提到脚本正在安装,但this link有更多信息以防万一。