Définir une tâche Gulp comme valeur par défaut
J'ai la tâche suivante dans mon gulpFile
créé par quelqu'un d'autre sur mon équipe:
gulp.task('serve', [], function(){
gulp.run(
'fonts',
'browsersync',
'watch'
);
});
Je tiens à le laisser seul, mais je voulais aussi la carte de la tâche par défaut pour cette tâche. J'ai donc essayé:
gulp.task('default',['serve']);
Il est apparu à travailler, dans lequel est exécuté le serveur, mais pour une raison de "regarder" la tâche n'est pas le cas, je ne suis pas arriver actualiser de votre navigateur sur les modifications.
Tout fonctionne comme prévu, si je lance "gulp servir" mais pas "avaler". Qu'ai-je fait de mal?
EDIT:
Voici la montre tâche:
gulp.task('watch', ['styles', 'browsersync'], function() { //'default'
gulp.watch(
[
'./app/assets/sass/**/*.scss',
'./app/modules/**/*.scss'
], ['styles']);
gulp.watch([
'./app/**/*.js',
'./app/**/*.html'
], function() {
reload();
});
});
source d'informationauteur Steve
Vous devez vous connecter pour publier un commentaire.
Essayez de mettre à jour votre tâche par défaut à inclure la montre de la tâche dans le tableau en argument au lieu de courir à l'intérieur de
serve
. Comme:Si vous extrayez le Gulp documentation sur tâche asynchrone soutienen particulier le dernier exemple, vous verrez que vous pouvez exiger d'une tâche dépendante de finition avant l'tâche est censée commencer.
gulp.run
etgulp.start
sont considéré comme une mauvaise pratique:https://github.com/gulpjs/gulp/issues/426
https://github.com/gulpjs/gulp/issues/505
Malheureusement, ici, la réponse semble être que votre collègue ne peut pas vraiment comprendre Gulp. Vous ne pouvez pas être en mesure de résoudre ce problème sans changer leur code.
Sans plus de contexte, comme l'ensemble de la gulpfile, je ne peux pas reproduire le problème exact. Cependant, mon intuition est qu'il a quelque chose à voir avec la façon dont Gulp exécute des tâches de manière asynchrone/en continu. Il se peut que votre 'par défaut' tâche est de sortir prématurément, car
gulp.run
n'exécute pas de façon synchrone. D'une façon ou d'une autre, Gulp est confus au sujet de laquelle les tâches doivent attendre sur le quoi, le quand. Vous êtes à l'aide de deux types complètement différents outils pour gérer votre séquence.Au lieu de
gulp.run
votre "servir" la tâche devrait vraiment utiliser les dépendances pour exécuter d'autres tâches:Aussi, il est intéressant de remarquer que votre montre tâche est déjà la liste 'browsersync" comme une dépendance. Bien que pas techniquement incorrect (Gulp va l'ignorer pour la seconde fois), elle peut conduire à overcomplication et de confusion et n'est probablement pas une bonne idée. Si 'watch' dépend 'browsersync', vous pouvez simplement supprimer le 'browsersync la dépendance de "servir":
Cela devrait vous obtenez le résultat que vous recherchez.
Tout cela étant dit, si vraiment vous insistez sur la suite d'une mauvaise pratique, vous pouvez essayer en utilisant
gulp.run
dans votre "par défaut" de la tâche:Je soupçonne votre problème principal est que vous sont un mélange de l'utilisation de la matrice de dépendances de tâches et de
gulp.run
mais de toute façon,gulp.run
est "faire le mal".