wake-up-neo.com

Verwenden von "preLaunchTasks" und Benennen einer Aufgabe in Visual Studio-Code

Gemäß der Dokumentation ist es möglich, ein Programm vor dem Debuggen zu starten:

Um eine Aufgabe vor dem Start jeder Debugsitzung zu starten, setzen Sie die Variable preLaunchTask auf name einer der in task.json angegebenen Aufgaben.

Ich habe keine Beispielsyntax für eine "named" -Aufgabe gesehen, aber die schema documentation enthüllt eine Eigenschaft mit dem Namen taskName. Ich habe versucht, damit meine launch.json preLaunchTasks mit der Task zu verknüpfen, aber es hat nicht funktioniert. Beim Starten meines Programms hat Visual Studio Code diesen Fehler gemeldet:

Es wurde keine eindeutige Task 'Startkern' gefunden. Stellen Sie sicher, dass die Aufgabe vorhanden ist und einen eindeutigen Namen hat.

Meine benutzerdefinierte "named" Aufgabe sah ungefähr so ​​aus:

{
    "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",
}

Ich habe dann versucht, den Eigenschaftsnamen von taskName in nur name zu ändern, basierend auf diesem Link . Das hat auch nicht funktioniert.

Intellisense gibt keine Vorschläge zur Benennung einer Aufgabe.

Weiß jemand, wie man eine Aufgabe in der Datei task.json eindeutig benennt? Was ist die Syntax? Wie lautet der Name der Immobilie?

Letztendlich möchte ich zwei oder drei node.js-Prozesse ausführen, bevor meine eigene node.js-App gestartet wird. Ich möchte zum Beispiel die folgenden drei Apps starten, bevor meine App im Debugger gestartet wird:

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

Wenn ich an einer Windows-Box arbeite, könnte meine Aufgabe ungefähr so ​​aussehen:

{
    "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"
        ]
}

Die obige Aufgabe verwendet die cmd start-Fähigkeit . Ich bin mir noch nicht sicher, wie ich mehrere Knotenaufgaben anstelle von einer Aufgabe starten lassen soll, aber ich kann nicht einmal eine Aufgabe wegen dieses Namensnamens starten. 

Wie benenne ich eine Aufgabe in der Datei task.json?

16
Brent Arias

Wenn es also immer noch relevant ist oder wenn jemand diesen Thread mit dem gleichen Problem findet, habe ich gerade herausgefunden, wie es funktioniert:

In task.json müssen Sie ein 'task' -Array - Code-Hinweis erstellen, der Ihnen dabei helfen wird - der ein Array von Objekten enthält. In einem Objekt können Sie das Schlüsselwertpaar 'taskName' haben.

Beispiel:

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

In meinem Fall musste ich den Befehl npm run-script webpack ausführen, bevor mein Projekt ausgeführt wurde. In der Datei launch.json funktioniert der "preLaunchTask": "runwebpack" jetzt.

Hinweis: Die Variable suppressTaskName ist in meinem Beispiel wahr. Wenn Sie es auslassen oder auf "false" setzen, hängt der VS-Code nach dem Befehl an die Variable taskName.

Ein allgemeiner Ansatz wäre etwa so:

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

Im letzteren Beispiel können Sie das tasks-Array mit anderen Scripts erweitern, die ebenfalls ausgeführt werden sollen.

Hinweis für meine Verwendung: Das npm run-script ruft aus dem package.json-Objekt scripts ab, was zu tun ist.

Bearbeiten: das funktioniert mit VS Code 1.3.1

15
zeroxx1986

FWIW, ich benutze VS Code 1.20.1 und hier ist, wie ich meine preLaunchTask zum Arbeiten bekam:

Im launch.json:

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

In meinem package.json:

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

Für die Konfiguration der Version 2.0.0 verwenden Sie jetzt label anstelle von taskName.

package.json:

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

launch.json (Meine Quelle befindet sich im Verzeichnis src und tsc kompiliert in das Verzeichnis 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
        }
    ]
}

aufgaben.json:

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

Ich habe wirklich nur den taskName gesehen, der in Bezug auf Gulp verwendet wird. Ich bin sicher, es gibt andere, aber nichts, worauf ich viel Einblick habe. Vielleicht können Sie damit beginnen, mit dem zu beginnen, was Sie bereits haben?

Ausführen einer Task vor dem Start in VSCODE

0
LimpingNinja

Der Fragentitel lautet:

"Verwenden von" preLaunchTasks "und Benennen einer Aufgabe in Visual Studio Code

Ich musste preLaunchTask *** s *** definieren.

Sie können mehrere Tasks mit der dependOn-Eigenschaft konfigurieren, die hier beschrieben wird: here

Zum Beispiel eine zusammengesetzte Aufgabe in Ihrer tasks.json:

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "Client Build",
            "command": "gulp",
            "args": ["build"],
            "options": {
                "cwd": "${workspaceRoot}/client"
            }
        },
        {
            "label": "Server Build",
            "command": "gulp",
            "args": ["build"],
            "options": {
                "cwd": "${workspaceRoot}/server"
            }
        },
        {
            "label": "Build",
            "dependsOn": ["Client Build", "Server Build"]
        }
    ]
}

Weitere Informationen zum Benennen von Aufgaben finden Sie hier .

0
1.21 gigawatts

Für vscode 1.36.1 (1.36.1):

tasks.json:

{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "build:tsc",
      "type": "npm",
      "script": "build:tsc"
    },
    {
      "label": "clean",
      "type": "npm",
      "script": "clean"
    },
    {
      "label": "build",
      "dependsOrder": "sequence",
      "dependsOn": ["clean", "build:tsc"]
    }
  ]
}

launch.json:

{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "node",
      "request": "launch",
      "name": "Launch Program",
      "program": "${workspaceFolder}/dist/main.js",
      "preLaunchTask": "build",
      "outFiles": ["${workspaceFolder}/dist/**/*.js"],
      "console": "integratedTerminal"
    }
  ]
}

Vor dem Ausführen von node ${workspaceFolder}/dist/main.js, der Task preLaunchTask führt zunächst den Task build aus, der zwei Unteraufgaben enthält: clean und build. Zuerst wird die Task clean und dann die Task build ausgeführt.

Sie können die Bezeichnung einer Aufgabe mit der Option preLaunchTask angeben.

0
slideshowp2