2016-05-24 2 views
1

Ich möchte einen Hintergrunddienst wie MongoDB von Visual Studio Code ausführen. Ich habe versucht, es durch die Aufgabe Läufer wie folgt auszuführen: ohne KontrolleAusführen von Hintergrunddiensten in Visual Studio Code

{ 
    // See https://go.microsoft.com/fwlink/?LinkId=733558 
    // for the documentation about the tasks.json format 
    "version": "0.1.0", 
    "command": "mongod", 
    "isShellCommand": false, 
    "args": ["--dbpath", "data\\db"], 
    "showOutput": "always" 
} 

Aber dies wird nur ausgeführt, es in VS den Server zu stoppen, z.B. durch Drücken von Strg + C.

Der normale Weg wäre, eine cmd.exe auszuführen und den mongod-Befehl von dort auszuführen. Aber ich würde es lieben, es schön in VS zu integrieren.

Antwort

1

eine Lösung für das Problem gefunden, indem ein Befehl mit Unteraufgaben verwenden. Dies wird "mongod" in einer separaten cmd.exe Shell ausführen. Einmal gestartet (in diesem Fall minimiert über /MIN), kann ich die MongoDB stoppen, indem Sie die cmd Fenster zu öffnen und drücken ctrl + C richtig Abschaltung der Datenbank.

Es wäre immer noch netter, die Shell innerhalb von vscode laufen zu lassen, aber vielleicht wird das irgendwann in einem Update kommen.

{ 
"version": "0.1.0", 
"command": "start", 
"isShellCommand": true, 
"showOutput": "never", 
"args": [ 
    "/MIN" 
], 
"tasks": [ 
    { 
     "taskName": "Start MongoDB", 
     "args": [ 
      "\"MongoDB @ localhost:27017\"", 
      "mongod", 
      "--dbpath", 
      "${workspaceRoot}/data/db" 
     ], 
     "suppressTaskName": true 
    } 
] 
} 
0

Sie können eine gerade Aufgabe definieren, wie in diesem Beispiel WebPACK:

{ 
    "version": "0.1.0", 
    "command": "npm", 
    "isShellCommand": true, 
    "echoCommand": false, 
    "suppressTaskName": true, 
    "showOutput": "always", 
    "tasks": [ 
     { 
      "args": [ 
       "run", 
       "start", 
       "--silent" 
      ], 
      "problemMatcher": [ 
       { 
        "owner": "custom", 
        "pattern": [], 
        "watching": { 
         "activeOnStart": true, 
         "beginsPattern": "webpack: bundle is now INVALID", 
         "endsPattern": "webpack: bundle is now VALID" 
        } 
       } 
      ], 
      "isWatching": true, 
      "taskName": "development" 
     } 
    ] 
} 

Das (optional) Problem Matcher beobachten beginsPattern und endsPattern die Konsolenausgabe der Start- und End-Watcher Aufgabe definieren. Die Überwachungsaufgabe kann über die Befehlspalette beendet werden.

https://github.com/Microsoft/vscode/issues/6209#issuecomment-218154235

+0

Sorry, aber das löst das Problem nicht. Weil ich den Prozess immer noch nicht richtig steuern kann. Das Töten der Aufgabe wird nur den Mongo-Prozess beenden, anstatt ihn über ein Signal wie Strg + C ordnungsgemäß zu beenden. – totkeks