重新启动后找不到npm命令

计算机重新启动后, npm命令不断被识别:

 -bash: npm: command not found 

node命令仍然正常工作,这只是npm不工作。 我必须从主站点重新安装Node.js才能重新运行。

~/bin被添加到我的$PATH在我的.bash_profile与:

 export PATH="$HOME/bin:$PATH" 

编辑:我也使用完整的mathiasbynens / dotfilespipe理自己的版本,我不知道这里是否有冲突。

我没有任何解释,只是几点提示:

正如@LaurentPerrin所说, node (通过它的官方安装包)安装到/usr/local/bin
(你为什么提到~/bin ?)

请注意,如果通过node.js版本pipe理器nvm使用用户级别的安装,在这种情况下[symlinks to]可执行文件放置在~/.nvm/v{version}/bin

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

这(只)是你运行which -a node时看到的?

node可执行文件直接放在/usr/local/bin ,而npm只是一个符号链接 ,指向/usr/local/lib/node_modules/npm/bin/npm-cli.js ,这是一个可执行的节点脚本,带有shebang行#!/usr/bin/env node

当你跑步

 ls -l /usr/local/bin/npm 

你应该看到类似的东西

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

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

如果还是不行,试着直接调用npm-cli.js ,看看会发生什么(这应该显示npm的命令行帮助):

 /usr/local/lib/node_modules/npm/bin/npm-cli.js help 

根据nvm自述文件 ,尝试运行一次:

 nvm alias default stable 

这将设置一个默认的Node版本在任何新的shell中使用。

在OSX上,节点安装到/usr/local/bin ,它需要位于path中。 编辑/edit/paths为根( sudo nano /etc/paths ),并确保它在第一行。 它应该是这样的:

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

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

我遇到了同样的问题(在OSX上)。 不知道这是否是你的解决scheme,但我最终在这里findnpm:

 .nvm/v0.10.22/bin 

或者,根据您的版本

 .nvm/v0.10.21/bin 

然后,我只是打印我的工作目录,并将其添加到我的path。 所以对我来说,当我打开terminal:

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

希望有所帮助。

我使用nvm来安装node.js. 我通过$PATH添加$HOME/.nvm/v0.10.25/bin来解决这个问题。 所以问题是path找不到。

我也有同样的问题。 我的解决scheme是使用sudo ... 我猜这是因为权限问题。