NVM在执行nvm ls时出现错误

19

我试图安装和切换不同的Node版本,因此我首先使用以下命令安装了nvm:

Administrators-MacBook-Pro:~ user.name$ sudo npm install nvm -g
Password:
npm http GET https://registry.npmjs.org/nvm
npm http 304 https://registry.npmjs.org/nvm
npm http GET https://registry.npmjs.org/mkdirp
npm http 304 https://registry.npmjs.org/mkdirp
/usr/local/bin/nvm -> /usr/local/lib/node_modules/nvm/bin/nvm
nvm@0.0.1 /usr/local/lib/node_modules/nvm
└── mkdirp@0.3.5

之后,我尝试执行 "nvm ls" 命令列出Node版本,但它报错了(如下所示)。请指导我错在哪里

Administrators-MacBook-Pro:~ user.name$ nvm ls

module.js:340
    throw err;
          ^
Error: Cannot find module '/usr/local/lib/node_modules/nvm/bin/nvm-ls'
    at Function.Module._resolveFilename (module.js:338:15)
    at Function.Module._load (module.js:280:25)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (/usr/local/lib/node_modules/nvm/bin/nvm:15:1)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10)

你好,想问一下你是否解决了这个问题?我也遇到了这个问题,即使按照下面的答案导出了我的路径。 - jewel
6个回答

52

最近我安装了nvm npm包(来自https://npmjs.org/package/nvm),遇到了这个问题。

要解决这个问题,请直接按照https://github.com/creationix/nvm#installation上的说明安装nvm。

一旦安装完成并且...

source ~/.nvm/nvm.sh

运行 (这很重要,因为它使 nvm 可在您当前的终端会话中使用),然后您就可以运行

nvm ls

你可以从项目目录中成功地执行其他nvm命令。

希望这能帮到你,祝学习Node愉快!


5
要使用nvm命令,您需要按照上述描述将其作为源。但是您不希望在每次登录后都这样做。
只需将以下行添加到您的~/.bashrc~/.profile~/.zshrc文件中,即可在登录时自动引用它们:
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"

参见 https://github.com/creationix/nvm#manual-install


注意:在OSX上,如果在运行安装脚本后出现“nvm:command not found”错误,则可能您的系统没有设置命令的[.bash_profile文件]。只需使用touch ~/.bash_profile创建一个文件,然后再次运行安装脚本即可。 - Sebastian Tilch

2

补充一下,我也使用Mac,但非默认shell(zsh) 安装nvm将修改.bash_profile(并添加“source〜/ .nvm / nvm.sh”的行)

所以我遇到了同样的错误,您需要确保将“source〜/ .nvm / nvm.sh”添加到您的shell配置文件中(对于我来说是.zshrc)


1

@jewel是正确的:截至2016年1月(甚至更早),通过NPM安装的nvm版本似乎不再存在(至少其github仓库已经404)。如果安装了这个旧的、未维护的软件包,当输入nvm命令时,你可能会看到像"local" not implemented yetError: Cannot find module './nvm-help'这样的错误。

现在正确的版本nvm来自https://github.com/creationix/nvm

如果您安装了早期(现在未维护)版本,您可以通过执行以下步骤重新启动:

  1. npm uninstall -g nvm
  2. 使用上面github页面中的安装脚本

0
你是否更新了路径以包含./node_modules/.bin?例如:
export PATH=./node_modules/.bin:$PATH

0

我的解决方案是 nano ~/.zshrc 添加 export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")" [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # 这会加载 nvm 然后重新启动终端


1
首先,您需要包含内联代码跨度,以便代码可读且可验证。其次,虽然此代码可能解决问题,但包括解释如何以及为什么可以解决问题将有助于提高您的帖子质量,并可能导致更多的赞。请记住,您为未来的读者回答问题,而不仅仅是现在提问的人。请编辑您的答案以添加解释,并指出适用的限制和假设。有关如何回答的更多详细信息,请参见此链接:https://stackoverflow.com/help/how-to-answer - Usama Abdulrehman

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接