在VS Code中打开项目时启动应用程序吗?

时间:2018-06-26 19:12:09

标签: visual-studio-code

打开项目后,是否可以让VS代码运行多个命令并启动一个(或多个)应用程序?

我正在做的理想情况是:

  1. 在vscode中打开项目
  2. 运行特定的ngrok命令
  3. 启动Mongo
  4. 启动NPM脚本

目标是使用VS代码打开项目,然后开始工作,而不是执行几个设置步骤。

3 个答案:

答案 0 :(得分:2)

将其添加到项目文件夹中的.vscode / tasks.json中,以在VS代码中打开文件夹时运行脚本或执行命令:

spec.image

为使其正常运行,您需要手动运行一次任务并允许自动运行任务。通过单击终端>运行任务>启动应用程序(或任何您命名的任务)来运行它。

答案 1 :(得分:1)

是的,扩展可以访问节点,因此它们几乎可以运行任何脚本。您还可以使用VS Code扩展API在VS Code终端中启动Shell脚本。

当用户加载工作区时,使用activation events启动扩展程序。 workspaceContains可能是最合适的。

答案 2 :(得分:0)

最后使用@HansPassant的解决方案:https://code.visualstudio.com/docs/editor/tasks#_custom-tasks

我的.vscode/tasks.json文件中与此类似:

{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "Launch Ngrok",
      "type": "shell",
      "command": "ngrok http -subdomain=<SUBDOMAIN> <PORT>",
      "windows": {
        "command": "ngrok http -subdomain=<SUBDOMAIN> <PORT>"
      },
      "group": "none",
      "presentation": {
        "reveal": "always",
        "panel": "new"
      }
    },
    {
      "label": "Launch App",
      "type": "shell",
      "command": "npm start",
      "windows": {
        "command": "npm start"
      },
      "group": "none",
      "presentation": {
        "reveal": "always",
        "panel": "new"
      }
    }
  ]
}

我还将项目另存为一个命名为Workspace的位置,以便在循环浏览打开的项目时可以快速确定正在查看的项目。

tasks.json中为每个项目添加了一个类似的.vscode文件,然后每次我想处理某项任务时,都使用命令面板启动每个任务。

每个应用程序对依赖项都有不同的要求,这些依赖项需要同时运行,有的需要通过本地节点启动,有的我是在远程服务器上启动,有的我需要TypeScript始终运行,然后Rsync到远程开发服务器(并将Rsync任务绑定到cmd + option + s以进行快速更新more here)。

此解决方案使上述所有内容变得轻而易举,使我不必记住神奇的咒语以使每个项目每次都运行。