Je reçois ce qui suit quand je cours "gulp". On dirait que j'ai un mélange de version CLI et locale, je ne sais pas trop comment résoudre ce problème.
cabox@box-codeanywhere:~/workspace/apps/web-ui$ gulp -v
[22:44:23] CLI version 2.0.1
[22:44:23] Local version 4.0.0
cabox@box-codeanywhere:~/workspace/apps/web-ui$
cabox@box-codeanywhere:~/workspace/apps/web-ui$
cabox@box-codeanywhere:~/workspace/apps/web-ui$ gulp
[22:44:28] Using gulpfile ~/workspace/apps/web-ui/gulpfile.js
[22:44:28] Starting 'default'...
[22:44:28] 'default' errored after 5.41 ms
[22:44:28] TypeError: gulp.hasTask is not a function
at /home/cabox/workspace/apps/web-ui/node_modules/run-sequence/index.js:23:22
at Array.forEach (<anonymous>)
at verifyTaskSets (/home/cabox/workspace/apps/web-ui/node_modules/run-sequence/index.js:17:11)
at runSequence (/home/cabox/workspace/apps/web-ui/node_modules/run-sequence/index.js:130:2)
at /home/cabox/workspace/apps/web-ui/gulpfile.js:187:5
at taskWrapper (/home/cabox/workspace/apps/web-ui/node_modules/undertaker/lib/set-task.js:13:15)
at bound (domain.js:301:14)
at runBound (domain.js:314:12)
at asyncRunner (/home/cabox/workspace/apps/web-ui/node_modules/async-done/index.js:55:18)
at _combinedTickCallback (internal/process/next_tick.js:131:7)
cabox@box-codeanywhere:~/workspace/apps/web-ui$ ^C
gulp v4 a des changements radicaux et cela crée des problèmes avec le paquet run-sequence.
Comme je n'ai pas votre fichier gulpfile.js, tout ce que je peux dire jusqu'à présent est d'essayer d'utiliser essayer d'utiliser gulp.series et gulp.parallel avec vos tâches gulp au lieu de run-sequence
vous pouvez recevoir une erreur de type "tâche1," tâche2 'impossible à terminer ", dans la fonction de la tâche, acceptez le rappel effectué et appelez le rappel dans vos tâches à la fin de la fonction
Exemple:
gulp.task('task1', gulp.series('task1-1', function (done) {
// task 1 code here
done();
}));
gulp.task('task2', gulp.series('task2-1', function (done) {
// task 2 code here
done();
}));
// Similarly Tasks 3 and 4 Code here
gulp.task('main', gulp.series('task1', 'task2', 'task3', 'task4', function (done) {
done();
}));
Tout ce qui compte est la version locale. Depuis que gulp 4.0.0 a introduit des changements radicaux, vous pouvez simplement faire ce que j'ai fait --- définir explicitement le paquet local sur une version opérationnelle:
npm install --save-dev [email protected]
Cela m’a mordu à deux reprises récemment et je reviendrai ici, j'en suis sûr.
Remarque: Les dépendances de gulp 3.9.1 comportent de nombreuses vulnérabilités de sécurité. Tu ne devrais pas faire ça.
J'ai eu le même problème et ne pouvais pas installer la version 3.9.1 de gulp. Après l'installation, était de toute façon 4.0.0. L'installation de la même version pour -g et --save dev - résout les problèmes liés à hasTask et donne la version 3.9.1 pour CLI et locale. Ne corrigez pas les vulnérabilités. Il transforme gulp local en 4.0.0. Il suffit donc d’installer npm i gulp @3.9.1 -g
et npm i gulp @3.9.1 --save-dev