无法运行 NPM 命令

Cha*_*din 19 node.js npm

我一直在我的机器上使用 NPM(Windows 10),但最近遇到了一个问题。我目前安装了 Node.js 并在运行任何 npm 命令时收到以下错误。

问题:导致此错误的原因是什么以及解决它的最佳方法是什么。

命令:

$ npm install
Run Code Online (Sandbox Code Playgroud)

输出/错误:

bash: /c/Program Files/nodejs/npm: /bin/sh^M: bad interpreter: No such file or directory
Run Code Online (Sandbox Code Playgroud)

Ada*_*ker 60

不是我的解决方案,但这似乎对我有用。似乎在$PATH使用 WSL2 时具有 Windows 文件夹结构会导致该解析错误,但我不确定为什么。

  1. 转到您的用户根 ( cd ~)
  2. .bashrc在您选择的编辑器(vi、nano 等)中打开
  3. 附加到文件末尾: export PATH=$(echo "$PATH" | sed -e 's/:\/mnt[^:]*//g') # strip out problematic Windows %PATH%
  4. 关闭并重新打开所有终端窗口

来源:https : //hackmd.io/@badging/wsl2#Troubleshooting-PATH


更新:根据 Lh Lee 的评论,我已将正则表达式从 更新为s/:\/mnt.*//gs/:\/mnt[^:]*//g因为这避免了在有问题的 /mnt 路径之后意外捕获任何额外内容。

而第一个正则表达式将匹配/mnt/c/blah:/other/thing,新的则不会。

  • 也帮助了我。我正在使用 WSL 2 (3认同)
  • 我在 WSL2 中也遇到了这个问题。您可以先输入“which npm”来检查是否在 WSL 中安装了“npm”。如果显示“/usr/bin/npm”,则表示您已经安装了“npm”。如果需要临时使用,只需输入“/usr/bin/npm install mypackge”即可。 (3认同)

小智 9

使用nvm安装nodejs/npm不会与 windows 中的发生冲突。npm 的路径变为(使用nvm安装后)/home/ubuntu/.nvm/versions/node/v14.16.0/bin/npm

阅读有关使用 WSL 2 设置 Node.js 开发环境的更多信息


小智 8

我用这些命令做了。

sudo apt update && sudo apt install curl -y

curl https://raw.githubusercontent.com/creationix/nvm/master/install.sh | bash 

source ~/.profile 

nvm ls-remote 

nvm install v15 

node --version 
Run Code Online (Sandbox Code Playgroud)


小智 0

我正在使用 Git Bash 作为 cli

就我而言,我的防病毒软件已隔离该C:\Program Files\Git\user\bin\sh.exe文件,这就是为什么$ npm init无法工作并显示此错误的原因:

bash:/c/Program Files/nodejs/npm:/bin/sh^M:错误的解释器:没有这样的文件或目录

当我恢复该文件时,它开始正常工作。