He visto que es posible definir una tarea en VSCode. Pero no estoy seguro de cómo definir varias tareas en el tasks.json
archivo.
visual-studio-code
vscode-tasks
Franz Gsell
fuente
fuente
Respuestas:
Por si acaso ayuda a alguien ... Si no tiene / quiere gulp / grunt / etc ... o un script de shell adicional para enviar sus comandos de tarea, "npm run" ya está ahí.
esto es para webpack y mocha como en "Construir y probar", Shift+ Ctrl+ B, Shift+ Ctrl+T
.vscode / tasks.json:
{ "name": "npmTask", //... "suppressTaskName": true, "command": "npm", "isShellCommand": true, "args": [ "run" ], "tasks": [ { //Build Task "taskName": "webpack", //Run On Shift+Ctrl+B "isBuildCommand": true, //Don't run when Shift+Ctrl+T "isTestCommand": false, // Show the output window if error any "showOutput": "silent", //Npm Task Name "args": [ "webpack" ], // use 2 regex: // 1st the file, then the problem "problemMatcher": { "owner": "webpack", "severity": "error", "fileLocation": "relative", "pattern": [ { "regexp": "ERROR in (.*)", "file": 1 }, { "regexp": "\\((\\d+),(\\d+)\\):(.*)", "line": 1, "column": 2, "message": 3 } ] } }, { //Test Task "taskName": "mocha", // Don't run on Shift+Ctrl+B "isBuildCommand": false, // Run on Shift+Ctrl+T "isTestCommand": true, "showOutput": "always", "args": [ "mocha" ] } ] }
package.json:
{ ... "scripts": { "webpack": "webpack", "mocha": "/usr/bin/mocha" }, ... }
fuente
Lo que me ayudó a entender esto mejor es la secuencia de argumentos que se pasan al comando. Puede ser obvio para algunos, pero no está claro en la documentación.
Omitir algunos campos para centrarse solo en el comando que se envía:
La definición anterior dará como resultado el siguiente comando:
El nombre de la tarea
myTask
siempre es el último. Desde la versión 0.4 se puede omitir con"suppressTaskName": true
.fuente
Prueba esto
fuente
Utilizo el siguiente archivo tasks.json para ejecutar múltiples escenarios de compilación de TypeScript. Pongo un archivo tsconfig.json en cada carpeta, de modo que me permite ajustar la salida de cada carpeta individualmente. Solo asegúrese de suprimir el nombre de la tarea, porque intenta ponerlo en la cadena de comando.
Así es como se ve la estructura de carpetas, donde / script es la raíz de salida y / source es la raíz de entrada. Ambas carpetas hacen referencia a declaraciones de tipo en la carpeta / typingd y en la carpeta / typings. TypeScript está algo limitado al uso de rutas relativas en referencias externas, por lo que ayuda a simplificar las cosas si estas estructuras de carpetas son similares.
Ah, sí, hace que sea más fácil iniciarlos de forma selectiva si los marca como no compilados y anula la clave de compilación para seleccionar una tarea específica de una lista, así
Actualización : siempre puedes volverte completamente deshonesto, si quieres. Puede haber mejores formas de manejar los argumentos, pero esto me funciona bajo OSX en este momento.
fuente
No sé la respuesta correcta a esto (y también me gustaría saber), pero mi fea solución en caso de que ayude a alguien. Estoy en Windows, terminé creando un simple script por lotes que podría contener simplemente
Entonces mi tasks.json se parece a
fuente
Puede enumerar más de una tarea en la propiedad de tareas. Algo como:
fuente
tsc
ymocha
tareas.Esta funcionalidad se agregó en Visual Studio Code v1.9 (enero de 2017) . El ejemplo y el texto provienen de las notas de la versión :
{ "version": "0.1.0", "tasks": [ { "taskName": "tsc", "command": "tsc", "args": ["-w"], "isShellCommand": true, "isBackground": true, "problemMatcher": "$tsc-watch" }, { "taskName": "build", "command": "gulp", "args": ["build"], "isShellCommand": true } ] }
Comandos por tarea
Ahora puede definir diferentes comandos por tarea ( # 981 ). Esto permite ejecutar diferentes comandos para diferentes tareas sin escribir su propio script de shell. Un
tasks.json
archivo que usa comandos por tarea se parece a [el anterior].fuente
Esto parece ser un error de VSCode a partir de v0.5.0
Mi gulp.js:
Observe que la primera tarea usa isBuildCommand, por lo que CTRL + SHFT + B se inicia y la siguiente tarea es isTestCommand, por lo que CTRL + SHFT + T se inicia. Sin embargo, para que la primera tarea aceptara argumentos, el nombre de la tarea y los argumentos debían invertirse.
A partir de VSCode 0.5.0, lo anterior funciona, pero lo siguiente no:
Aquí está el resultado de task.json con la tarea correcta y el orden de los argumentos:
Aquí está el resultado correcto de tasks.json con el nombre de la tarea y arg invertidos cuando se usan args:
fuente
A partir de la versión de febrero de 2017 , puede usar Terminal Runner y componer varias tareas configurando tareas de dependencia. Es un poco raro porque abrirá una terminal integrada separada para cada tarea, que debes observar para ver si las cosas funcionan y recordar cerrar (se "apilan"), y no recibes una notificación de "terminado" , pero hace el trabajo. La funcionalidad es preliminar pero prometedora. Este es un ejemplo para ejecutar tsc y jspm para una aplicación Cordova.
fuente
Lo siguiente funcionó para mí:
tasks.json:
MyProject.UnitTests \ project.json :
Ejecutar bower: Ctrl + Shift + B desde vscode Ejecutar pruebas: Ctrl + Shift + T desde vscode
fuente
Esto funciona para mí ...
Sé que hay muchas respuestas diferentes aquí, pero mi enfoque fue un poco diferente nuevamente, así que pensé en agregar mis 2 centavos.
Estoy en Windows y uso un archivo por lotes externo para ejecutar mis comandos. Es similar a la respuesta de Jonathan anterior, pero no le envío ningún comando, lo que significa que mi archivo "tasks.json" es diferente.
Podría cambiar este enfoque con el tiempo (por ejemplo, todavía no he jugado con gulp) pero este método funciona perfectamente bien para mí en este momento.
Estoy usando manubrios para plantillas html, babel para poder usar el código ES6 y un linter de código para detectar errores. Al final, el archivo por lotes inicia un navegador con mi página de inicio (index.html)
Aquí está mi archivo por lotes llamado run_tasks.bat:
Y aquí está mi archivo tasks.json:
Luego, en VSCode presiono “CTRL + SHIFT + B” para ejecutar mi archivo por lotes.
fuente
Tengo una aplicación de Electron que necesita compilar una hoja de estilo menos y luego compilar e iniciar el programa. Usé la solución de @ Ocean que funcionó para mí ... nada más funcionó.
Tanto mi archivo tasks.json como build-tasks.bat están en el directorio .vscode en la raíz del proyecto.
build-tasks.bat
tasks.json
fuente
Gracias a este hilo, ahora tengo c # / dnxcore50 build y test debug, etc. trabajando en vscode en osx con esto:
Estoy seguro de que Linux sería básicamente el mismo. Lo único que me molesta es tener que mantener los archivos .csproj solo para depurar. Espero una forma de depurar con dnx, aunque no lo he buscado en un par de semanas.
fuente