Ich baue eine Electron -Anwendung (Node.js), die gcloud app deploy
aus der Anwendung mit Echtzeit-Feedback erzeugen muss ( stdin / stdout / stderr).
Ich wechselte schnell von child_process
zu execa , weil ich unter Mac OS X einige Probleme mit dem child_process-Puffer hatte, der begrenzt ist bis 200kb (und gcloud app deploy
sendet einen großen Teil der Zeichenfolge & gt; 200kb, der den Befehl zum Absturz bringt).
Nun, mit execa
scheint alles unter OSX normal zu funktionieren, aber nicht unter Windows.
Der Code sieht ungefähr so aus:
%Vor%Dieser Code funktioniert perfekt unter Mac OS X, obwohl ich unter Windows nicht das gleiche Ergebnis habe
Ich habe viel versucht:
Ich habe einen GIST erstellt, um die Antworten auf einige Tests zu zeigen, die ich unter Windows mit grundlegenden Child Process-Skripten durchgeführt habe: Ссылка
Ich habe auch ein Problem mit execa
repository geöffnet: Ссылка
Hat schon jemand dieses Problem? Ich habe gesucht und nichts gefunden, was vielversprechend ist, außer diesem Reddit-Thread , der dies nicht löst Problem.
Hinter der Szene führt gcloud.cmd ein Python-Skript aus. Nach dem Lesen von Tonnen von Node.js Problem mit ChildProcess / Python und Windows, fiel ich auf diesen Thread: Ссылка
Es gibt ein bekanntes Problem beim Ausführen von Python-Skripten aus einem untergeordneten Node.js-Prozess.
Sie sprechen in diesem Kommentar über eine ungepufferte Option für Python. Nachdem ich das Shell-Skript in gcloud.cmd
aktualisiert habe, indem ich die Option -u
hinzugefügt habe, ist mir aufgefallen, dass alles wie erwartet funktioniert
In diesem Kommentar wird erläutert, wie diese Option als Umgebung festgelegt wird Variable (um das Windows-Shell-Skript nicht direkt zu ändern): Ссылка
Das Hinzufügen von PYTHONUNBUFFERED
zur Umgebungsvariablen behebt dieses Problem!
Tags und Links windows node.js child-process gcloud google-app-engine-deploy