TL: DR
Gulp 3.*
non funziona su Node 12.*
o superiore. Devi eseguire il downgrade di Node o aggiornare Gulp.
Se hai poco tempo, esegui il downgrade del nodo a v11. * O inferiore; se hai bisogno di nuove funzionalità e hai il tempo di riparare un carico di dipendenze rotte, aggiorna Gulp a 4. * o superiore!
Come altri hanno già accennato, Gulp 3.*
non è supportato su Node 12
o versioni successive, quindi dovrai eseguire il downgrade della versione del tuo nodo 11.*
o precedente, o aggiornare Gulp a 4.0
.
L'opzione migliore dipende in definitiva da quanto tempo hai, poiché l'aggiornamento di Gulp porta benefici di gulpfile più puliti e controllo integrato sull'avvio di attività in serie o in parallelo , ma si basa anche sul fatto che riscrivi il tuo gulpfile in una nuova sintassi, e potrebbe (leggi: probabilmente - vedrai la fine di questo commento) causare conflitti con alcune dipendenze.
Nodo di downgrade
Questa è l'opzione più semplice e veloce. Soprattutto se usi n o nvm , in quanto ti consentono di installare molto rapidamente e passare da una versione all'altra del nodo.
Installazione della versione del nodo su N
n 10.16.0
Installazione della versione del nodo su NVM
nvm install 10.16.0
Una volta fatto questo, potrebbe essere necessario ricostruire le dipendenze npm o in alternativa rimuovere sia la node_modules
cartella che il package-lock.json
file e reinstallare le dipendenze. Tuttavia, se stai semplicemente ripristinando una versione di nodo preesistente, probabilmente dovresti andare bene.
Aggiornamento di Gulp
Come accennato in precedenza, questo è un compito che richiede più tempo, ma potrebbe portare benefici a lungo termine. Ad esempio, Node 12
ha ora introdotto il supporto nativo per i moduli ES (dietro un flag sperimentale) e il supporto completo in Node 13
.
Potrebbe essere necessario aggiornare Node per usarlo, costringendo l'utente ad aggiornare Gulp. Oppure potresti semplicemente desiderare i vantaggi dell'utilizzo di Gulp 4, in quanto offre un controllo migliore e più efficiente sulle attività di scrittura.
Ci sono già diversi articoli su questo, quindi non approfondirò ulteriormente i dettagli, ma per ribadire: questo non è un lavoro veloce . A seconda delle dimensioni del progetto, potrebbero essere necessarie alcune importanti riscritture e potresti avere dipendenze che si interrompono. Se hai poco tempo a disposizione, dovresti optare per il downgrade del nodo, almeno temporaneamente.
Ma ho già Gulp 4 e ancora non funziona!
Se, come me, stai già utilizzando Gulp 4+ (stavo usando Gulp 4.0.2
, originariamente sul Nodo 10) e hai recentemente aggiornato (ho eseguito l'upgrade a Node 13.8.0
) se stai ancora riscontrando il problema, potrebbe essere perché una dipendenza si basa su un versione precedente di Gulp, che viene catturato dalla pipeline.
Nel mio caso, gulp-combine-mq
era una dipendenza usando Gulp3.9.*
. La disabilitazione di questa attività nel mio gulpfile ha permesso di eseguire nuovamente Gulp.
In questo caso, hai alcune opzioni: puoi,
- Vai senza il plugin se non è assolutamente necessario
- Trova un'alternativa,
- Correggi il plug-in
Inutile dire che se hai diversi plugin che si basano su una versione precedente di Gulp - specialmente se questi plugin sono vitali per la tua applicazione - è qui che può esserci un enorme ulteriore periodo di tempo speso per l'aggiornamento di Gulp (quindi le avvertenze sopra).
In questo caso, è consigliabile eseguire il downgrade del nodo, almeno fino a quando non è possibile emettere patch.