【问题标题】:Why wont my npm package commands work?为什么我的 npm 包命令不起作用?
【发布时间】:2016-02-21 19:11:35
【问题描述】:

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

【问题讨论】:

标签: node.js bash npm command homebrew


【解决方案1】:

运行这个命令npm bin -g,看看它是否显示(not in PATH env variable)。如果是这种情况,您需要修复路径。如果是这种情况,请运行:

export PATH=$PATH:`npm bin -g`

如果这样可以解决问题,请将该行放入您的.bash_profile,(但将反引号和它们之间的内容替换为npm bin -g 的实际结果)。

【讨论】:

  • 你可以使用export PATH=$(npm bin -g):$PATH,这样你就不需要复制粘贴了。此外,最好将其放入~/.profile。以下命令将为您完成所有这些事情:echo 'export PATH=$(npm bin -g):$PATH' >> ~/.profile。不要忘记重新启动或注销&登录。
【解决方案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 有更多信息以防万一。

【讨论】:

  • 非常感谢,这很有帮助!但是我确实使用了类似的方法: 1. 运行“npm config edit”命令 2. 浏览文件并删除显示“prefix=~/.npm-packages”的行 我删除了一个 sudo 前缀
猜你喜欢
  • 2019-12-11
  • 2020-11-08
  • 2015-04-29
  • 1970-01-01
  • 2021-08-14
  • 2021-11-14
  • 2020-10-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多