重启后找不到npm命令

时间:2013-11-13 11:01:53

标签: macos node.js terminal npm

计算机重启后,npm命令一直无法识别:

-bash: npm: command not found

node命令仍然正常,只有npm无法正常工作。我必须从主站点重新安装Node.js才能让它再次运行。

~/bin已添加到我$PATH的{​​{1}}中,其中包含:

.bash_profile

编辑:我也在使用管理自己版本的完整mathiasbynens/dotfiles,我想知道这里是否存在冲突。

6 个答案:

答案 0 :(得分:4)

我没有解释,只有一些指示:

正如@LaurentPerrin所述,node(通过其官方安装程序包)安装到/usr/local/bin
(为什么提到~/bin?)

请注意,如果您通过node.js版本管理器 nvm 使用用户级安装,则适用不同的规则,在这种情况下[符号链接到]可执行文件放在~/.nvm/v{version}/bin

因此,node可执行文件应为/usr/local/bin/node

这是(仅)您在运行which -a node时看到的内容吗?

node可执行文件在<{1}}中直接放置 ,而/usr/local/bin只是指向{{1}的符号链接这是一个带有shebang行npm的可执行节点脚本。

运行时

/usr/local/lib/node_modules/npm/bin/npm-cli.js
你应该看到像

这样的东西
#!/usr/bin/env node

查看符号链接是否存在并指向正确的文件。

如果仍然无效,请尝试直接调用ls -l /usr/local/bin/npm 并查看会发生什么(这应该显示npm的命令行帮助):

lrwxr-xr-x  1 root  wheel  38 Dec 13 11:52 /usr/local/bin/npm -> \
                                           ../lib/node_modules/npm/bin/npm-cli.js

答案 1 :(得分:3)

根据nvm readme file,尝试运行一次:

nvm alias default stable

这将设置要在任何新shell中使用的默认节点版本。

答案 2 :(得分:1)

在OSX上,节点安装到/usr/local/bin,需要在您的路径中。以root身份(/edit/paths)修改sudo nano /etc/paths并确保它位于第一行。它应该是这样的:

/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin

然后,您可以通过运行:source /etc/profile强制bash刷新路径。

答案 3 :(得分:0)

我遇到了同样的问题(在OSX上)。不确定这是否适合你,但我最终在这里找到了npm:

.nvm/v0.10.22/bin

或者,根据您的版本

.nvm/v0.10.21/bin

然后我打印了我的工作目录并将其添加到我的路径中。所以对我来说,当我打开终端时:

cd .nvm/v0.10.22/bin
pwd
>> /path/to/.nvm/v0.10.22/bin

希望有所帮助。

答案 4 :(得分:0)

我使用nvm来安装node.js.我通过将$HOME/.nvm/v0.10.25/bin添加到$PATH来解决此问题。所以问题是无法找到路径。

答案 5 :(得分:0)

我有同样的问题。我的解决方案是使用sudo ...。我猜这是因为许可问题。