Ich möchte etwas einfaches mit Schluck zu erreichen. Ich möchte eine generische Methode schreiben, um Dateien von einem bestimmten Quellverzeichnis in ein Ausgabeverzeichnis zu verschieben.Gulp Aufgabe mit unterschiedlicher Quelle in Abhängigkeit von Argumenten
so tun wir so etwas wie so
var args = require('yargs');
function transform-move-jsx-Development()
{
gulp.src(config.sourceJSX)
.pipe(react, browserify, etc....)
.pipe(gulp.dest(config.output_development));
};
function transform-move-jsx-Production()
{
gulp.src(config.sourceJSX)
.pipe(react, browserify, etc....)
.pipe(gulp.dest(config.output_production));
};
gulp.task('transform-move-jsx-Development', transform-move-jsx-Development);
gulp.task('transform-move-jsx-Production', transform-move-jsx-Production);
gulp.task('prod', [transform-move-jsx-Production]);
gulp.task('dev', ['transform-move-jsx-Development']);
Die beiden Aufgaben: Transformation-move-jsx-Produktion und Transformation-move-jsx-Entwicklung mit Ausnahme des Ausgabeverzeichnis identisch sind. Ich möchte es trockener machen (wiederhole dich nicht). Ich sollte in der Lage sein, eine einzige Methode zu machen, die einen Yarg-Parameter oder etwas richtig verwenden kann? Im nächsten Beispiel so tun, als ich, dass ich den Weg als arg
var args = require('yargs');
function transform-move-jsx()
{
return gulp.src(config.sourceJSX)
.pipe(gulp.dest(args.outputDirectory));
};
gulp.task('dev', ['transform-move-jsx']);
aber jetzt dies erfordert mich
Also versuche ich, so etwas wie dies mit yargs passieren kann Argumente an den schluck Aufruf in der Befehlszeile hinzufügen
Das ist offensichtlich weniger wartbar, da wir mehr und mehr Schluckaufgaben innerhalb der Dev-Schluckaufgabe nennen. Und würde sowieso chaotisch sein, wie wir sollten nicht eine Implementierung Detail wie müssen wissen, was die Ausgangsverzeichnisstruktur ist, wenn wir gulp dev
laufen konnte ich stattdessen so etwas tun:
function transform-move-jsx(destination)
{
return gulp.src(config.sourceJSX)
.pipe(gulp.dest(destination));
};
function transform-move-jsx-Development()
{
transform-move-jsx("./output/development/");
};
function transform-move-jsx-Production()
{
transform-move-jsx("./output/production/");
};
gulp.task('transform-move-jsx-Development',transform-move-jsx-Development);
gulp.task('transform-move-jsx-Production', transform-move-jsx-Production);
gulp.task('prod', transform-move-jsx-Production);
gulp.task('dev', transform-move-jsx-Development);
Dies scheint besser in dass es flexibler ist, aber jetzt ist mein gulpfile mit mehreren unnötigen Funktionen übersät.
Gibt es einen besseren Weg?
nicht vertraut mit schluck viel aber hast du versucht, 'moveViews()' und 'moveJs()' von 'move()' selbst zu nennen? – joyBlanks
Ich verstehe nicht, warum du das durch Schluck machen würdest anstatt 'mv' oder' cp' zu benutzen ??? – Mathletics
Das verdient mehr Aufmerksamkeit, was für eine gute Frage - haben Sie seither eine praktikable Lösung dafür gefunden? Ich renne gerade in das hinein. –