Глоток.js-использовать путь от глотка.src () in gulp.dest()
попытка создать задачу gulp, которая будет передавать кучу файлов из разных папок через LESS, а затем выводить их в папку на основе исходного источника. Рассмотрим эту структуру папок:
Project
+-- /Module_A
| +- /less
| | +- a.less
| +- a.css
|
+-- /Module_B
+- /less
| +- b.less
+- b.css
вот мой gulpfile:
var gulp = require('gulp');
var gutil = require('gulp-util');
var less = require('gulp-less');
gulp.task('compileLess', function () {
gulp.src('./*/less/*.less')
.pipe(less())
.pipe(gulp.dest( ??? ));
});
gulp.task('default', ['compileLess']);
Я знаю, что залпом.dest () ожидает, что путь будет передан, но в моем примере путь будет отличаться в зависимости от исходного файла. Итак, как я могу захватить путь из источника, изменить его, а затем передать его в глоток.дест()?
или я иду по этому неправильному пути?
2 ответа:
вы должны взглянуть на залпом-переименовать
в значительной степени:
gulp.src('./*/less/*.less') .pipe(less()) .pipe(rename(function(path){ // Do something / modify the path here })) .pipe(gulp.dest('./finalRootDestination'))
вы уходите залпом.dest указывает на ваш конечный выходной каталог, но изменяет на лету отдельные пути к файлам на основе любой логики, которую вы хотите внутри обратного вызова, чтобы gulp-rename.
в своем
src
установитьbase
опция, и она будет поддерживать исходный путь вашего файла less.gulp.task('compileLess', function () { gulp.src('./*/less/*.less', {base: './'}) .pipe(less()) .pipe(gulp.dest( './dist' )); });
The
./dist
пунктом может быть что угодно. Везде, где вы хотите, чтобы ваша файловая структура была размещена.дополнительная информация здесь: https://github.com/wearefractal/glob-stream#options