Can I automatically start a task when a folder is opened?
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"
}
},
I create an extension that can do it. It is "Blade Runner". Try this! Blade Runner on Visual Studio Code Market Place
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:
You can specify a particular task as a Build task and then press
CMD+SHIFT+B
when you open the folder to start the task. See here: https://code.visualstudio.com/docs/editor/tasks#_mapping-gulp-grunt-and-jake-output-to-problem-matchersYou could write an extension that is activated on startup and then runs gulp with the task name. See here for extension activation options: https://code.visualstudio.com/docs/extensionAPI/activation-events#_activationevents.
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.