2017-08-03 2 views
0

habe ich zwei Aufgaben mir bei der Entwicklung einer Website zur Verfügung:Wie werden mehrere Aufgaben als Gruppe ausgeführt?

{ 
    "version": "2.0.0", 
    "tasks": [ 
     { 
      "taskName": "build site", 
      "command": "jekyll b --watch --incremental", 
      "type": "shell", 
      "group": "build" 
     }, 
     { 
      "taskName": "serve site", 
      "command": "./_devd -ol _site", 
      "type": "shell", 
      "group": "build" 
     } 
    ] 
} 

ich sie eins nach dem anderen mit F1 -> Run Task beginnen (also muss ich zweimal die Sequenz erteilen, einmal für jede Aufgabe) und I Am Ende laufen zwei Aufgaben gleichzeitig ab.

Ist es möglich, dies zu automatisieren und eine Gruppe von Aufgaben gleichzeitig auszuführen?I thought, dass die group Eintrag würde, na ja, gruppieren sie zusammen, aber es ist nicht der Fall (sie sind nur als zu der Gruppe build oder test gehörig erkannt - und ich fand keine Möglichkeit, die gesamte Gruppe auf einmal zu starten).

Antwort

1

Sie können das Attribut "dependsOn" verwenden. Wenn Sie die Aufgabe "Build Site" zuerst ausführen möchten, fügen Sie sie als "dependsOn" der Aufgabe "serve site" hinzu. Wenn Sie beide zusammen ausführen möchten, erstellen Sie eine weitere Aufgabe, die sowohl von den Aufgaben "Website erstellen" als auch "Website bereitstellen" abhängig ist. Hier

ist ein Beispiel für den Aufbau der Website vor dem Servieren:

{ 
    "taskName": "build site", 
    "command": "jekyll b --watch --incremental", 
    "type": "shell", 
    "group": "build" 
}, 
{ 
    "taskName": "serve site", 
    "command": "./_devd -ol _site", 
    "type": "shell", 
    "group": "build", 
    "dependsOn": "build site" // <--- Added this 
}, 

nicht bekannt, eine saubere Möglichkeit, dies mit langer Laufzeit Aufgaben zu tun, aber ...

Hier ist ein Beispiel für Lauf beide Aufgaben zur gleichen Zeit:

{ 
    "taskName": "Run Everything", // <-- Bind this task to a key 
    "dependsOn": [ "build site", "serve site" ] 
}, 
{ 
    "taskName": "build site", 
    "command": "jekyll b --watch --incremental", 
    "type": "shell" 
}, 
{ 
    "taskName": "serve site", 
    "command": "./_devd -ol _site", 
    "type": "shell" 
} 
+0

Danke, aber das wird nicht funktionieren, weil "Build-Site" eine Aufgabe ist, die nicht endet. Beide Aufgaben enden eigentlich nicht und müssen parallel ausgeführt werden. – WoJ

+0

Aktualisierte Antwort, um zu zeigen, wie beide zusammen ausgeführt werden. – alexriedl

+0

Vielleicht möchten Sie in vscode die Hintergrundoption für Aufgaben suchen. Ich habe es nicht benutzt, daher kenne ich die Einschränkungen nicht. https://code.visualstudio.com/docs/editor/tasks#_background-watching-tasks – alexriedl

Verwandte Themen