TL: DR
Gulp 3.*
funktioniert nicht auf Node 12.*
oder höher. Sie müssen Node downgraden oder Gulp aktualisieren.
Wenn Sie wenig Zeit haben, führen Sie ein Downgrade von Node auf Version 11. * oder niedriger durch. Wenn Sie neuere Funktionen benötigen und Zeit haben, um möglicherweise eine Menge defekter Abhängigkeiten zu beheben, aktualisieren Sie Gulp auf 4. * oder höher!
Wie andere bereits erwähnt haben, wird Gulp 3.*
auf Node 12
oder höher nicht unterstützt. Sie müssen daher Ihre Node-Version auf 11.*
oder unter herunterstufen oder Ihr Gulp auf upgraden 4.0
.
Die beste Option hängt letztendlich davon ab, wie viel Zeit Sie haben, da das Upgrade von Gulp die Vorteile sauberer Gulpfiles und integrierter Kontrolle darüber bietet, dass Aufgaben in Reihe oder parallel ausgeführt werden. Sie müssen Ihr Gulpfile jedoch auch auf eine neue Syntax umschreiben könnte (lesen: wahrscheinlich wird - siehe Ende dieses Kommentars) Konflikte mit einigen Abhängigkeiten verursachen.
Knoten herabstufen
Dies ist die einfachste und schnellste Option. Insbesondere, wenn Sie n oder nvm verwenden , da Sie so sehr schnell installieren und zwischen Node-Versionen wechseln können.
Installieren der Knotenversion auf N.
n 10.16.0
InstallingNode-Version auf NVM
nvm install 10.16.0
Wenn Sie dies getan haben, müssen Sie möglicherweise Ihre npm-Abhängigkeiten neu erstellen oder alternativ sowohl Ihren node_modules
Ordner als auch Ihre package-lock.json
Datei entfernen und Ihre Abhängigkeiten neu installieren. Wenn Sie lediglich zu einer bereits vorhandenen Node-Version zurückkehren, sollte dies wahrscheinlich in Ordnung sein.
Upgrade von Gulp
Wie oben erwähnt, ist dies eine zeitintensivere Aufgabe, die jedoch langfristig Vorteile bringen kann. Beispielsweise hat Node 12
jetzt die native Unterstützung für ES-Module (hinter einem experimentellen Flag) und die vollständige Unterstützung in Node eingeführt 13
.
Möglicherweise müssen Sie Node aktualisieren, um dies zu nutzen, und müssen Gulp aktualisieren. Oder Sie möchten einfach nur die Vorteile von Gulp 4 nutzen, da es eine bessere und effizientere Kontrolle über Schreibaufgaben bietet.
Es gibt bereits eine Reihe von Artikeln zu diesem Thema, daher werde ich nicht weiter auf die Einzelheiten eingehen, sondern es noch einmal wiederholen - dies ist keine schnelle Aufgabe . Abhängig von der Größe Ihres Projekts ist möglicherweise ein bemerkenswertes Umschreiben erforderlich, und es können Abhängigkeiten auftreten, die nicht mehr funktionieren. Wenn Sie wenig Zeit haben, sollten Sie sich dafür entscheiden, Node zumindest vorübergehend einfach herunterzustufen.
Aber ich habe bereits Gulp 4 und es funktioniert immer noch nicht!
Wenn Sie wie ich bereits Gulp 4+ verwenden (ich habe Gulp verwendet 4.0.2
, ursprünglich auf Knoten 10) und kürzlich ein Upgrade durchgeführt haben (auf das ich aktualisiert habe Node 13.8.0
), wird das Problem möglicherweise immer noch angezeigt, weil eine Abhängigkeit von einem abhängig ist ältere Version von Gulp, und das wird in der Pipeline gefangen.
In meinem Fall gulp-combine-mq
war eine Abhängigkeit mit Gulp 3.9.*
. Durch Deaktivieren dieser Aufgabe in meinem Gulpfile konnte Gulp erneut ausgeführt werden.
In diesem Fall haben Sie einige Möglichkeiten:
- Gehen Sie ohne das Plugin, wenn es nicht unbedingt notwendig ist
- Eine Alternative finden,
- Repariere das Plugin
Wenn Sie mehrere Plugins haben, die auf einer älteren Version von Gulp basieren - insbesondere wenn diese Plugins für Ihre Anwendung von entscheidender Bedeutung sind -, kann dies einen enormen zusätzlichen Zeitaufwand für das Upgrade von Gulp bedeuten (daher die obigen Warnungen).
In diesem Fall ist es am besten, den Knoten nur herunterzustufen, zumindest bis Patches ausgegeben werden können.