Node.js全局安装模块时出现“command not found”

14 浏览
0 Comments

Node.js全局安装模块时出现“command not found”

我正在尝试运行realm-cli,使用常规方式在全局安装它

npm install -g mongodb-realm-cli

看起来安装成功了,我可以在Users//AppData/Roaming/npm中看到它。有一个没有扩展名的可执行文件,内容如下:

#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
    *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
esac
if [ -x "$basedir/node" ]; then
  exec "$basedir/node"  "$basedir/node_modules/mongodb-realm-cli/wrapper.js" "$@"
else 
  exec node  "$basedir/node_modules/mongodb-realm-cli/wrapper.js" "$@"
fi

还有一个.cmd和.ps1文件。

当我运行测试命令"realm-cli --profile --help"时,出现错误:

C:\Users\\AppData\Roaming\npm/node_modules/node/bin/node: line 1: This: command not found

现在,运行"where npm"会给我以下结果:

C:\Program Files\nodejs\npm
C:\Program Files\nodejs\npm.cmd
C:\Users\\AppData\Roaming\npm\npm
C:\Users\\AppData\Roaming\npm\npm.cmd

而"which npm"给出的结果是:

/c/Program Files/nodejs/npm

我猜这可能是Node.js版本或安装目录的问题,但我不确定如何解决。

ProgramFiles文件夹似乎包含实际的npm可执行文件,而Roaming/npm文件夹包含全局安装的包。所以我不确定这些日志是否显示了任何问题。

我尝试将Roaming/npm文件夹添加到环境变量路径中,但没有帮助。我确保在用户和系统变量中都加入了该变量,而且始终在任何其他npm/node的提及之前。

当然,我也尝试了卸载、清除npm缓存和重新安装该软件包。我还尝试了其他软件包,以确保这不是一个孤立的问题。

有任何帮助或线索吗?谢谢


编辑/解决:

我相信在一段时间前,当我尝试安装NVM时,没有正确删除所有Node.js文件。我完全卸载了Node.js和NVM(使用这里列出的解决方案作为参考),重新安装了NVM(和通过NVM安装的Node.js)。现在它正常工作了。

0