TL: DR
Gulp 3.*
ne fonctionne pas sur Node 12.*
ou supérieur. Vous devez rétrograder Node ou mettre à niveau Gulp.
Si vous manquez de temps, rétrogradez Node à v11. * Ou inférieur; si vous avez besoin de nouvelles fonctionnalités et que vous avez le temps de corriger une charge de dépendances cassées, mettez à niveau Gulp vers 4. * ou plus!
Comme d'autres l'ont déjà mentionné, Gulp 3.*
n'est pas pris en charge sur Node 12
ou supérieur, vous devrez donc rétrograder votre version Node vers 11.*
ou ci-dessous, OU mettre à niveau votre Gulp vers4.0
.
La meilleure option dépend en fin de compte du temps dont vous disposez, car la mise à niveau de Gulp apporte des avantages de fichiers Gulp plus propres et un contrôle intégré sur l'exécution des tâches en série ou en parallèle , mais dépend également de la réécriture de votre fichier Gulp dans une nouvelle syntaxe, et pourrait (lire: probablement - voir la fin de ce commentaire) provoquer des conflits avec certaines dépendances.
Nœud de déclassement
C'est l'option la plus simple et la plus rapide. Surtout si vous utilisez n ou nvm , car ceux-ci vous permettent d'installer et de basculer très rapidement entre les versions de Node.
Installation de la version du nœud sur N
n 10.16.0
Installation de la version de Noeud sur NVM
nvm install 10.16.0
Une fois que vous avez fait cela, vous devrez peut- être reconstruire vos dépendances npm ou supprimer à la fois votre node_modules
dossier ET votre package-lock.json
fichier et réinstaller vos dépendances. Bien que si vous revenez simplement à une version de nœud préexistante, cela devrait probablement aller.
Mise à niveau de Gulp
Comme mentionné ci-dessus, il s'agit d'une tâche plus longue, mais qui pourrait apporter des avantages à long terme. Par exemple, Node 12
a désormais introduit la prise en charge native des modules ES (derrière un drapeau expérimental) et une prise en charge complète dans Node13
.
Vous devrez peut-être mettre à niveau Node pour l'utiliser, ce qui vous obligera à mettre à niveau Gulp. Ou vous pouvez simplement souhaiter les avantages de l'utilisation de Gulp 4, car il offre un contrôle meilleur et plus efficace sur les tâches d'écriture.
Il y a déjà un certain nombre d'articles à ce sujet, donc je ne développerai pas davantage sur les détails, mais pour réitérer - ce n'est pas un travail rapide . Selon la taille de votre projet, une réécriture importante peut être requise et des dépendances peuvent se briser. Si vous manquez de temps, vous devriez opter pour une simple rétrogradation de Node, au moins temporairement.
Mais j'ai déjà Gulp 4, et ça ne marche toujours pas!
Si, comme moi, vous utilisez déjà Gulp 4+ (j'utilisais Gulp 4.0.2
, à l'origine sur Node 10) et avez récemment mis à niveau (j'ai mis à niveau versNode 13.8.0
), vous rencontrez toujours le problème, c'est peut-être parce qu'une dépendance dépend d'un ancienne version de Gulp, et qui se fait prendre dans le pipeline.
Dans mon cas, gulp-combine-mq
était une dépendance utilisant Gulp 3.9.*
. La désactivation de cette tâche dans mon gulpfile a permis à Gulp de s'exécuter à nouveau.
Si cela se produit, vous avez quelques options: vous pouvez,
- Allez sans le plugin si ce n'est pas absolument nécessaire
- Trouvez une alternative,
- Réparer le plugin
Inutile de dire que si vous avez plusieurs plugins qui s'appuient sur une ancienne version de Gulp - en particulier si ces plugins sont essentiels pour votre application - c'est là qu'il peut y avoir un énorme temps supplémentaire consacré à la mise à niveau de Gulp (d'où les avertissements ci-dessus).
Si cela se produit, il est préférable de simplement rétrograder le nœud, au moins jusqu'à ce que des correctifs puissent être émis.