在 WSL Ubuntu 20.04 上安装 npm 后,我收到消息“/usr/bin/env: ‘bash\r’: No such file or directory”

2024-05-14

运行时我看到以下消息npm install or npm来自终端的命令。执行中node按预期工作。

    > npm install
    /usr/bin/env: ‘bash\r’: No such file or directory

2023 年 7 月更新:微软有一个使用 NVM 在 WSL 上安装 Node 的指南 https://learn.microsoft.com/en-us/windows/dev-environment/javascript/nodejs-on-wsl#install-nvm-nodejs-and-npm。如果您遵循他们的操作方法,您可能不会遇到此问题。

对许多人都有效的修复:这可能是行尾问题导致的问题,但不是 Ubuntu 造成的。确保你有node and npm正确安装:

  1. 从 WSL 运行sudo apt install nodejs npm安装node和npm
  2. 从 PowerShell/CMD 运行wsl --shutdown重新启动 WSL 服务
  3. 从 WSL 运行which npm确认已安装(输出应该是:/usr/bin/npm)

问题仍然存在吗?接下来试试这个:

通过编辑以下内容来停止与 WSL 共享 Windows 路径变量/etc/wsl.confWSL 中的文件。如果文件不存在则执行sudo touch /etc/wsl.conf第一的。使用命令编辑文件sudo nano /etc/wsl.conf并添加以下配置:

[interop]
appendWindowsPath = false

然后使用命令重新启动 WSL2wsl --shutdown在Windows中。

Note 1: 这将阻止 PATH 环境变量从 Windows 传递到 WSL。已知错误:这会停止 VSCodecode .在 WSL 中工作的命令。如果这是一个问题,请使用此处描述的 NVM 解决方案或切换到使用 Docker 容器中的节点。

Note 2: 这也影响pyenv命令,参见/usr/bin/env:‘bash\r’:没有这样的文件或目录:不兼容的行结尾(WSL?) https://github.com/pyenv/pyenv/issues/1725#issuecomment-824054644

来自@mike的提示:“我不想禁用执行此操作的能力code .所以我只是通过将此行添加到我的 ~/.bashrc PATH=$(echo "$PATH" | sed -e 's%:/mnt/c/Program Files/nodejs%%')" 来删除 Windows NodeJS 路径

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 WSL Ubuntu 20.04 上安装 npm 后,我收到消息“/usr/bin/env: ‘bash\r’: No such file or directory” 的相关文章

随机推荐