LESSを介してさまざまなフォルダーから多数のファイルをパイプし、それらを元のソースに基づいてフォルダーに出力するgulpタスクを作成しようとしています。このフォルダー構造を考慮してください。
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']);
Gulp.dest()はパスが渡されることを期待していますが、私の例では、パスはソースファイルに基づいて異なります。では、ソースからパスを取得して変更し、gulp.dest()に渡すにはどうすればよいですか?
それとも私はこれについて間違った方法で行っていますか?
gulp-rename をご覧ください
かなり:
gulp.src('./*/less/*.less')
.pipe(less())
.pipe(rename(function(path){
// Do something / modify the path here
}))
.pipe(gulp.dest('./finalRootDestination'))
最終出力ディレクトリを指すgulp.destを残しますが、gulp-renameへのコールバック内で必要なロジックに基づいて個々のファイルパスをオンザフライで変更します。
src
でbase
オプションを設定すると、lessファイルの元のパスが維持されます。
gulp.task('compileLess', function () {
gulp.src('./*/less/*.less', {base: './'})
.pipe(less())
.pipe(gulp.dest( './dist' ));
});
./dist
宛先は何でもかまいません。ファイル構造を配置する場所。
追加情報はこちら: https://github.com/wearefractal/glob-stream#options