/usr/bin/env: 'node': 运行 vscode 任务时没有那个文件或目录

Get*_*awn 2 ubuntu node.js gulp visual-studio-code

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

{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "Gulp Build",
      "group": "build",
      "command": "./node_modules/.bin/gulp",
      "type": "shell",
      "args": [
        "build"
      ],
      "problemMatcher": []
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

当我按下Ctrl+Shift+B选择一个构建任务时,我选择了上面的一个,在我的终端中我得到了这个:

> 执行任务:./node_modules/.bin/gulp build <

/usr/bin/env: 'node': No such file or directory
终端进程以退出代码终止:127

我已经导出了变量:

.gnomerc.bashrc

export PATH="$NVM_BIN:$NPM_HOME:$PATH"
Run Code Online (Sandbox Code Playgroud)

注:这两个NodeNPM都都安装使用NVM

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

Ash*_*son 7

发生这种情况是因为.bashrc没有为任务加载,因为它们是非交互式 shell。您还需要为非交互式 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
Run Code Online (Sandbox Code Playgroud)

您可能需要注销并重新登录才能生效。