visual studio start react node instalar guide funciones extensions extension debug code node.js visual-studio-code

node.js - start - visual studio code node js extensions



Uso de "tareas previas al lanzamiento" y nombre de una tarea en el código de Visual Studio (4)

Entonces, si sigue siendo relevante, o si alguien encuentra este hilo con el mismo problema, acabo de descubrir cómo funciona:

En task.json , debe crear una matriz de "tareas" ; la sugerencia de código le ayudará con eso, que contiene una matriz de objetos. Dentro de un objeto, puede tener el par clave-valor ''taskName'' .

Ejemplo:

{ "version": "0.1.0", "command": "npm", "isShellCommand": true, "args": ["run-script", "webpack"], "showOutput": "always", "tasks": [ { "taskName": "runwebpack", "suppressTaskName": true } ] }

En mi caso, tuve que ejecutar el npm run-script webpack antes de ejecutar mi proyecto. En el archivo launch.json , la "preLaunchTask": "runwebpack" funcionará ahora.

Nota: el suppressTaskName es verdadero en mi ejemplo. Omitirlo o configurarlo en falso resultará en que el Código VS taskName nombre de taskName después del comando.

Un enfoque más general sería algo como esto:

{ "version": "0.1.0", "command": "npm", "isShellCommand": true, "args": ["run-script"], "showOutput": "always", "tasks": [ { "taskName": "webpack" } ] }

Con este último ejemplo, puede extender la matriz de tasks con otros scripts que también se ejecutarán.

Sugerencia para mi uso : npm run-script recupera qué hacer del objeto de scripts del archivo package.json .

Edición: esto funciona con VS Code 1.3.1

Según la documentación , es posible iniciar un programa antes de la depuración:

Para iniciar una tarea antes del inicio de cada sesión de depuración, configure preLaunchTask con el nombre de una de las tareas especificadas en tasks.json.

No he visto la sintaxis de ejemplo de una tarea "nombrada", pero la documentación del esquema revela una propiedad llamada taskName . Intenté usar eso para vincular mi launch.json preLaunchTasks a la tarea, pero no funcionó. Cuando inicié mi programa, Visual Studio Code reportó este error:

No se pudo encontrar una tarea única ''launch-core''. Asegúrese de que la tarea exista y de que tenga un nombre único.

Mi tarea personalizada "nombrada" se parecía a esto:

{ "taskName": "launch-core", "version": "0.1.0", "command": "C://utils//mystuff.exe", // The command is a shell script "isShellCommand": true, // Show the output window only if unrecognized errors occur. "showOutput": "silent", }

Luego intenté cambiar el nombre de la propiedad de taskName a solo name , basado en este enlace . Eso tampoco funcionó.

Intellisense no da sugerencias de cómo nombrar una tarea.

¿Alguien sabe cómo nombrar de forma única una tarea en el archivo tasks.json? ¿Cuál es la sintaxis? ¿Cuál es el nombre de la propiedad?

En última instancia, me gustaría ejecutar dos o tres procesos node.js antes de que se inicie mi propia aplicación node.js. Por ejemplo, me gustaría tener las siguientes tres aplicaciones iniciadas antes de que mi aplicación se inicie en el depurador:

sh -c ''cd ./manager/ && node manager.js'' sh -c ''cd ./adapter/ && node adapter.js'' sh -c ''cd ./core/ && node core.js''

Si estoy trabajando en una caja de Windows, mi tarea podría tener este aspecto:

{ "taskName": "core-launch", "version": "0.1.0", // The command is tsc. Assumes that tsc has been installed using npm install -g typescript "command": "start", // The command is a shell script "isShellCommand": true, // Show the output window only if unrecognized errors occur. "showOutput": "silent", // args is the HelloWorld program to compile. "args": [ "ACD-Manager", "/B", "/D", "./manager/", "node", "manager.js" ] }

La tarea anterior utilizando la capacidad de start cmd . Todavía no estoy seguro de cómo hacer que varias tareas de nodo se inicien en lugar de una, pero ni siquiera puedo iniciar una tarea debido a este problema de asignación de nombres de tareas.

¿Cómo nombro una tarea en el archivo tasks.json?


FWIW, estoy usando el Código VS 1.20.1 y aquí es cómo conseguí que funcionara mi tarea previa al inicio :

En launch.json :

{ "version": "0.2.0", "configurations": [ { "type": "node", "request": "launch", ... "preLaunchTask": "npm: build", } ] }

En mi package.json :

{ ... "scripts": { "build": "tsc" ... } }


Para la configuración de la versión 2.0.0 ahora usa la label lugar de taskName .

paquete.json:

... "scripts": { "tsc": "tsc", ... } ...

launch.json (Mi fuente está en el directorio src y tsc compila en el directorio dist ):

{ "version": "0.2.0", "configurations": [ { "type": "node", "request": "launch", "preLaunchTask": "Compile", "name": "Launch Program", "program": "${workspaceFolder}/src/index.ts", "outFiles": [ "${workspaceFolder}/dist/**/*.js" ], "protocol": "inspector", "sourceMaps": true } ] }

tareas.json:

{ "version": "2.0.0", "tasks": [ { "label": "Compile", "type": "npm", "script": "tsc", "problemMatcher": [] } ] }


Solo he visto realmente el nombre de tarea usado en relación con Gulp; Estoy seguro de que hay otros, pero nada de lo que tengo mucho conocimiento. ¿Quizás esto puede hacer que empieces con lo que ya tienes?

Ejecutar una tarea de pre-lanzamiento en VSCODE