2016-05-22 9 views
1

Ich versuche mein Framework so zu erstellen, dass es robuster und wiederverwendbar ist.Aufgabe scheint registriert zu sein, kann aber nicht ausgeführt werden?

/gulp-framework 
    tasks/ 
     _assets.js 
    index.js 
    package.json 
    node_modules/ 
/project-a 
    gulpfile.js 
    configuration.js 

Innerhalb index.js Ich verwende require(./tasks/_assets.js)(gulp, config);

Ich habe ein Konsolenprotokoll innerhalb _assets.js und ich kann das in der Ausgabe sehen, wenn ich schluck laufen -T ich die Antwort erhalten:

[08:17:44] ├── assets 
[08:17:44] ├── build 
[08:17:44] └─┬ default 
[08:17:44] └── build 

Build-perlt einfach Vermögenswerte run-sequence() verwenden. Offensichtlich ist die Aufgabe hier registriert ist, aber wenn ich nur gulp in cmd laufen, erhalte ich:

Starting 'build'... 
[08:18:19] 'build' errored after 1.76 ms 
[08:18:19] Error: Task assets is not configured as a task on gulp. If this is a submodule, you may need to use require('run-sequence').use(gulp). 

Ich habe versucht, den Einsatz Schluck verwenden, aber das schafft nur mehr Fehler.

Irgendwelche Ideen?

Antwort

1

Ich habe herausgefunden, dass das Modul run-sequence mir genau sagt, was ich tun musste, obwohl ich nicht erkannte, dass dies spezifisch für das run-sequence Modul war.

Überall dort, wo ich run-sequence in einem Teilmodul bin ich brauchte folgendes zu tun:

module.exports = function(gulp, config) { 
    var runSequence = require('run-sequence').use(gulp); 
} 

Von run-sequence:

Verwendung innerhalb schluck Submodule

wenn Sie ein komplexes schluck setup mit ihren aufgaben auf verschiedene dateien aufgeteilt, können sie den fehler erhalten, dass run-sequenz ihre aufgaben nicht finden kann. In diesem Fall können Sie die run-sequence konfigurieren, um den Schluck innerhalb des Submoduls zu betrachten:

// submodule tasks/mygulptask.js 
var gulp = require('gulp'), 
// might be a different instance than the toplevel one 
// this uses the gulp you provide 
runSequence = require('run-sequence').use(gulp); 
// ...and then use normally 
runSequence('subtask1', 'subtask2');