J'ai parcouru la documentation de Code Visual Studio pour savoir comment ajouter plusieurs tâches consécutives au fichier tasks.json
.
Le tableau tasks
permet uniquement de créer différents arguments pour la même commande. Dans cet exemple, la commande est echo
.
{
"version": "0.1.0",
"command": "echo",
"isShellCommand": true,
"args": [],
"showOutput": "always",
"echoCommand": true,
"suppressTaskName": true,
"tasks": [
{
"taskName": "hello",
"args": ["Hello World"]
},
{
"taskName": "bye",
"args": ["Good Bye"]
}
]
}
Tasks.json permet-il l'exécution simultanée de plusieurs tâches? Par exemple, tsc
suivi de uglify
?
La fonctionnalité dependsOn
a été fournie dans version 1.10.0 . Par exemple, je l’utilise pour compiler et exécuter des scripts de fichier unique dans TypeScript:
{
"version": "2.0.0",
"tasks": [
{
"command": "tsc -p ${cwd}/2017-play",
"label": "tsc-compile",
"type": "Shell"
},
{
"command": "node ${cwd}/2017-play/build/${fileBasenameNoExtension}.js",
"label": "node-exec",
"type": "Shell",
"dependsOn": [
"tsc-compile"
],
"problemMatcher": []
}
]
}
Voici un exemple de travail qui exécute la version tcs et copie le source dans un autre dossier à l’aide d’un script Shell. Ceci est basé sur diverses publications sur StackOverflow et sur la documentation trouvée ici:
https://code.visualstudio.com/updates/v1_10#_more-work-on-terminal-runner
On pourrait aussi faire un tasks.json avec deux tâches, la seconde ayant une dépendance sur la première, comme le montre Ben Creasy post, les deux tâches seraient exécutées à l’appel de la seconde. Je devais être capable d'exécuter l'un, l'autre ou les deux. Un grand merci à Ben, j’ai eu du mal à trouver une solution avant de publier ce message.
En passant, lors de l’inclusion d’un fichier Shell, les commandes sont exécutées en référence au dossier du projet, et non à celui dans lequel se trouve le script.
{
// See https://go.Microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"type": "TypeScript",
"tsconfig": "tsconfig.json",
"problemMatcher": [
"$tsc"
],
"group": "build",
"identifier": "build"
},
{
"label": "Copy files",
"type": "Shell",
"command": "./scripts/copysrc.sh",
"windows": {
"command": ".\\scripts\\copysrc.cmd"
},
"group": "build",
"presentation": {
"reveal": "always"
},
"problemMatcher": [],
"dependsOn": "build"
},
{
"label": "Build and copy",
"dependsOn": [
"build",
"Copy files"
],
"group": "build",
"problemMatcher": []
}
]
}