2014-06-11 1 views
7

J'essaye d'ajouter run-sequence à mon flux de travail de gulp mais j'ai cette erreur chaque fois que j'essaye d'exécuter ma tâche dans laquelle j'utilise la séquence d'exécution :Gulp et erreur de séquence d'exécution: tâche n'est pas configurée comme une tâche sur gulp

La tâche n'est pas configurée comme tâche sur gulp.

Selon la source de l'exécution séquence, cela est causé par ce test:

if (isTask && !gulp.hasTask(t)) { 
    throw new Error("Task "+t+" is not configured as a task on gulp."); 
} 

Mes tâches sont découpés en plusieurs fichiers, et tout fonctionne très bien si j'exécuter une seule tâche ou une tâche avec une dépendance, la seule erreur que j'ai est sur celui-ci:

'use strict'; 

var gulp = require('gulp'), 
    runSequence = require('run-sequence'); 

module.exports = gulp.task('default', function() { 
    if (release) { 
     runSequence(
      'clean', 
      ['index', 'styles', 'images', 'fonts', 'templates'], 
      'browserify', 
      'minify' 
     ); 
    } else { 
     runSequence(
      'clean', 
      ['index', 'styles', 'images', 'fonts', 'templates'], 
      ['watchify', 'watch'] 
     ); 
    } 
}); 

le test ne doit pas échouer, parce que quand je tente d'ajouter ce morceau de code juste avant ma fonction runSequence, il est sortie vrai pour toujours y tâche que je tente d'exécuter la fonction:

console.log(gulp.hasTask('clean'); // Output true 
runSequence(
    'clean', 
    ['index', 'styles', 'images', 'fonts', 'templates'], 
    ['watchify', 'watch'] 
); 

Mais j'ai encore l'erreur: tâche de nettoyage est pas configuré comme une tâche sur gulp. Même si je supprime 'clean' du tableau, il échouera lors de la tâche suivante: L'index de tâche n'est pas configuré comme tâche sur gulp.

Si quelqu'un a une idée de ce qui se passe ici ...

Merci pour l'aide.

+1

Avez-vous déjà trouvé cela? – AJcodez

+0

Bonjour @AJcodez, malheureusement non je ne l'ai pas fait. J'ai copié la source run-sequence.js dans mon dossier gulp/task et cela fonctionne, mais je ne peux pas utiliser npm avec node_modules pour gérer la dépendance. :/ – jgx

+0

Le suivant fonctionne 'gulp^3.8.5' et' run-sequence^0.3.6'. Ce n'était pas à un moment donné pour moi, peut-être essayer de réinstaller? – AJcodez

Répondre

12

Est-ce que votre run-sequence est installée globalement ou localement? Essayez de l'installer localement, cela a résolu le problème pour moi!

npm install run-sequence 
+0

Cela a résolu mon problème aussi! –

+1

dépendance de développement peut être installé directement en utilisant >> npm installer --save-dev –

2

Le problème est que run-sequence fait un mauvais travail de construction avec des dépendances. Comme gulp est une dépendance, elle devrait prendre cela dans le constructeur comme argument, que vous devrez fournir. Malheureusement, la façon dont c'est écrit, c'est difficile à faire. Il y a une méthode .use() que vous pouvez chaîner à l'instruction require() pour le module, pour définir le module gulp, mais même cela est un vœu pieux, en supposant que l'amorçage de l'instruction require est fait là où le module gulp est disponible.

Je viens de faire une réécriture dessus. Ce n'est pas BC avec la version actuelle, car l'API a changé un peu. Vous devez construire le module en l'assignant à une variable et appeler la méthode run(), en passant les tâches et les options comme décrit dans les docs en cours.

Vous pouvez le vérifier ici ...

https://github.com/oojacoboo/run-sequence

Si les gens veulent, je peux mettre à jour le fichier README, peut-être lui donner un autre nom non conflictuel et nettoyer certaines choses. Je me rends compte que la réécriture pourrait avoir divergé plus que certains préfèrent, mais les dépendances peuvent au moins être correctement traitées maintenant.

4

J'ai eu ce même problème et ma solution était de le faire à la place dans ma déclaration de besoin comme Jacob Thomason mentionné.

var runSequence = require('run-sequence').use(gulp);