gulp を使用して簡単なことを達成したい。特定のソース ディレクトリから出力ディレクトリにファイルを移動するための一般的な方法を作成したいと考えています。
私たちはそのようなものを持っているふりをします
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']);
transform-move-jsx-Production と transform-move-jsx-Development の 2 つのタスクは、出力ディレクトリを除いて同じです。もっとDRY(Don't Repeat Yourself)にしたい。yarg パラメーターまたは何かを使用できる単一のメソッドを作成できるはずです。この次の例では、パスを引数として渡すことができるふりをします
だから私はyargsを使ってこのようなことを試します
var args = require('yargs');
function transform-move-jsx()
{
return gulp.src(config.sourceJSX)
.pipe(gulp.dest(args.outputDirectory));
};
gulp.task('dev', ['transform-move-jsx']);
ただし、これにより、コマンドラインでgulp呼び出しに引数を追加する必要があります
gulp dev --"path to output, etc."
dev gulp タスク内からますます多くの gulp タスクを呼び出すため、これは明らかに保守性が低くなります。実行時の出力ディレクトリ構造のような実装の詳細を知る必要がないため、とにかく面倒ですgulp dev
代わりに、次のようなことができます。
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);
これはより柔軟であるという点で優れているように見えますが、現在、私の gulpfile にはいくつかの不要な関数が散らばっています。
より良い方法はありますか?