运行 vscode 任务时出现“/usr/bin/env: ‘node’: 没有那个文件或目录”的错误

8

我有一个基本的任务设置来构建我的TypeScript和Sass文件。它看起来像这样:

{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "Gulp Build",
      "group": "build",
      "command": "./node_modules/.bin/gulp",
      "type": "shell",
      "args": [
        "build"
      ],
      "problemMatcher": []
    }
  ]
}

当我按下Ctrl+Shift+B来选择构建任务时,我选择了上面的任务,在我的终端中出现了以下内容:
> 执行任务:./node_modules/.bin/gulp build < /usr/bin/env: ‘node’: 没有那个文件或目录 终端进程以退出码127终止
我已经导出了变量: .gnomerc.bashrc:
export PATH="$NVM_BIN:$NPM_HOME:$PATH"

注意: NodeNPM 都是使用 NVM 安装的。

如果我从我的收藏夹或通过活动打开编辑器,我会得到上面的错误。如果我从命令行打开,它可以正常工作。如何在不必每次都从命令行打开的情况下让它正常工作?


嗨@get-off-my-lawn,如果它对您有用,请接受答案,如果没有,请留下评论。谢谢! - Ashley Wilson
1个回答

21

出现这种情况是因为非交互式Shell不会加载.bashrc文件。你需要在非交互式Shell中加载nvm Shell增强功能,以便通过nvm安装的全局软件包能够在VS Code中使用。

创建一个名为nvm-autoload.sh的新文本文件,并将其放置在/etc/profile.d/文件夹中,以便为所有登录Shell(包括VS Code的任务Shell)运行它。将以下内容添加到该文件中:

# Enable nvm if available
if [ -f ~/.nvm/nvm.sh ]; then
  source ~/.nvm/nvm.sh
fi

您可能需要注销并重新登录以使此生效。


谢谢!工作得很完美。但是在Mac上它是 /etc/profile。 - Matt Hudson
在Ubuntu 20.04和vscode 1.61.0中对我有效。 - Patricio Marrone
运行得非常顺利,在我的Ansible Playbook中使用了这个https://github.com/ed3899/vagrant-base-ubuntu-jammy。 - Edward Casanova
运行得非常顺利,在我的Ansible Playbook中使用了这个https://github.com/ed3899/vagrant-base-ubuntu-jammy。 - undefined

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