为什么我的npm包命令不起作用?

时间:2016-02-21 19:11:35

标签: node.js bash npm command homebrew

我被困住了。不确定为什么我的npm包命令没有被-bash读取。它们确实正在安装,但是例如在安装浏览器之后我通过在命令中输入bower来测试它并且它返回:-bash:bower:command not found但是然后我将列出我的包,它确实安装了。与Express,Grunt,Gulp等相同。我已经通过Homebrew安装了节点。请帮忙!

2 个答案:

答案 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有更多信息以防万一。