Chcę osiągnąć coś prostego za pomocą łyka. Chcę napisać ogólną metodę przenoszenia plików do katalogu wyjściowego z określonego katalogu źródłowego.Zadanie Gulp z innym źródłem w zależności od argumentów.
udawać, mamy coś jak Więc
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']);
dwóch zadań: transform-move-JSX-produkcji i transformacji-move-JSX-rozwojowych są identyczne, z wyjątkiem katalogu wyjściowego. Chcę, aby było bardziej SUCHEGO (nie powtarzaj się). Powinienem być w stanie zrobić jedną metodę, która może użyć parametru yarg lub coś w tym stylu? W tym kolejnym przykładzie udaję mogę przejść ścieżkę jako arg
Więc spróbuj coś takiego korzystających 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']);
Jednak to wymaga teraz mi dodać argumenty do rozmowy haustem w wierszu poleceń
gulp dev --"path to output, etc."
Jest to oczywiście mniej konserwowalne, ponieważ nazywamy coraz więcej zadań od wewnątrz zadania Dev Gulp. I byłby jakikolwiek bałagan jak nie powinniśmy znać szczegółów wdrażania podobnego co struktura katalogów jest wyjście, gdy prowadzimy gulp dev
mogłem zamiast zrobić coś takiego:
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);
Wydaje lepiej że jest bardziej elastyczny, ale teraz mój plik gulp jest zaśmiecony kilkoma niepotrzebnymi funkcjami.
Czy istnieje lepszy sposób?
nie zna haustem znacznie ale czy próbowałeś wywołać 'moveViews()' i 'moveJs()' z samego 'move()'? – joyBlanks
Nie rozumiem, dlaczego zrobiłbyś to poprzez łyk, zamiast używać 'mv' lub' cp' ??? – Mathletics
To zasługuje na więcej uwagi, co za świetne pytanie - czy od tego czasu znalazłeś praktyczne rozwiązanie? Właśnie w to wchodzę. –