25

Does VS code support starting a gulp-watch task on startup? I'd like to start the watcher when I open the editor.

Maarten
  • 354
  • 1
  • 4
  • 6

5 Answers5

37

This functionality was added in v1.30: Release notes: run task on folder open

Run on folder open

If you have a task that you always run when you open a folder, you can configure it to run automatically when that folder is opened by configuring its "runOn" property. We found this useful for making sure no one breaks our new strict null checks in the VS Code repository. By adding "runOn": "folderOpen", everyone who allows tasks to be run automatically will get markers when they violate the strict null check:

Example:

{
    "type": "npm",
    "script": "strict-null-check-watch",
    "label": "TS - Strict Null Checks",
    "isBackground": true,
    "problemMatcher": {
        "base": "$tsc-watch",
        "owner": "typescript-strict-null",
        "applyTo": "allDocuments"
    },
    "runOptions": {
        "runOn": "folderOpen"
    }
}

Example 2:

{
  "label": "Tasks: copy3",
  "type": "shell",
  "command": "gulp",
  "args": [
    "copy3",
    "--file",
    "${fileBasename}"
  ],
  "problemMatcher": [],
  "runOptions": {
    "runOn": "folderOpen"
  }
},
Mark
  • 143,421
  • 24
  • 428
  • 436
  • 18
    Make sure that automatic tasks are enabled: 1. CTRL-P 2. Search for and run 'Manage Auotomatic Tasks in Folder' 3. Select for and run 'Allow Automatic Tasks in Folder' – Andreas Vendel Jan 08 '20 at 08:26
  • 2
    Those are tasks and they go into your `.vscode/tasks.json` file. – Mark Jan 17 '20 at 17:08
  • @AndreasVendel It doesn't look like that works for me, do you know if this got deleted? – Timberman Apr 28 '20 at 12:50
  • All works fine, thanks! I had a similar problem as @AndreasVendel – so double-check the mentioned above 'Manage Automatic Tasks in Folder', but to search for it press "F1" instead of "Ctrl+P" (last command search for files only). – Oleg Zarevennyi Jul 30 '20 at 07:29
  • 1
    My comment was not entirely correct. It should have been CTRL-SHIFT-P, but F1 also works, as @OlegZarevennyi suggested. – Andreas Vendel Jul 30 '20 at 13:33
  • After adding the task to tasks.json I think you need to run the task manually one time, and then you'll get a popup saying something like "Would you like to allow this task to run automatically?" That's what I had to do to get it working. – Coco Nov 09 '20 at 23:05
  • If you would like to simplify the use of `runOn: folderOpen` inside devcontainers, please vote in this feature request: https://github.com/microsoft/vscode-remote-release/issues/6580 – felipecrs Apr 12 '22 at 16:05
15

I create an extension that can do it. It is "Blade Runner". Try this! Blade Runner on Visual Studio Code Market Place

Doi Yuki
  • 166
  • 4
5

This is an old thread, but the question is still up to date. Blade Runner did not suit my needs, nor did any other extension.

I created an extension AutoLaunch that can run a specific task from tasks.json or launch a specific debug configuration from launch.json.

Phil
  • 615
  • 6
  • 12
1

No, sorry. This is a good suggestion (ability to run a task on startup), can you please file an issue in the microsoft/vscode repo on GitHub? (Sorry, I can't post more than 2 links yet)?

In the meantime, here are a couple of options:

Chris Dias
  • 281
  • 2
  • 2
1

Just as Mark suggested You can use "runOn": "folderOpen", but it's not that simple to run a Gulp task I believe. I suggest trying to do it the following way.

{
    "label": "Watch",
    "type": "shell",
    "command": "gulp watch",
    "runOptions": {
        "runOn": "folderOpen"
    }
)
kcpr
  • 1,055
  • 1
  • 12
  • 28
  • It doesn't seem like that works for me, is there anything else to enable to make that work? – Timberman Apr 28 '20 at 12:52
  • @Timberman, I think VSCode should ask You about it, but You can try adding manually `"problemMatcher": []` to this object. Maybe that will help. If not, please precise if there are any errors displayed and if so, what are they. Also, I think that there should be no need to restart the whole VSCode to check if Your configuration works - running "Reload window" command (You can find it after pressing `Ctrl`+`Shift`+`P`) shall be enough. – kcpr Apr 28 '20 at 13:20