Zum einen ist hier ein Repo mit sehr einfaches Beispiel für mein Problem: https://github.com/nkoder/example-of-gulp-less-zero-exit-on-errorschluck-less-Task beendet mit null auf ungültige Arten
ich schluck bauen Pipeline definieren möchten, die auf jedem Fehler fehlschlägt. Diese Pipeline würde im automatisierten Prozess (zB Continuous Integration) verwendet werden, so brauche ich den Build-Befehl, um bei einem Fehler einen Nicht-Null-Exit-Code zurückzugeben. Es funktioniert für mich mit ungültigen Jade-Vorlagen oder nicht bestandenen Tests, die mit Karma ausgeführt werden.
Das Problem ist, wenn ich gulp-less
verwenden, um CSS von LESS vorzubereiten. Immer wenn ich einen Pipelineschritt nach gulp-less
Ausführung hinzufüge, werden alle Fehler "konsumiert" und die ganze Aufgabe wird mit 0 beendet. Aber es sollte nicht.
- Die erste Frage lautet: Wie
wrong
Aufgabe zwingen, mit Nicht-Null-Exit-Code zum Scheitern verurteilt? (gelöst, siehe unten beantworten) - Die zweite Frage ist: Warum
error
Ereignis inless()
Anruf von verrohrt Stream ausgestrahlt wird nicht eine ganze Aufgabe der Bereitstellung von nicht-Null-Exit-Code zurück? Nicht-Null wird in einigen anderen ähnlichen Fällen zurückgegeben, z. in Jade oder ESLint Fehler. (Noch nicht gelöst)
Ausführungen:
- Knoten 5.11.0
- NPM 3.8.6
- gulp 3.9.1
- gulp losen 3.1.0
Danke für diese Lösung! Ich bin kein großer Fan davon, 'process.exit (...)' explizit aufzurufen, aber wenn es der einzige Weg ist, 'less()' falsch zu machen, dann OK. – nkoder