次のような LESS CSS ディレクトリ構造があるとします。
less/
core/
_main.less
header.less
body.less
footer.less
contact/
_main.less
form.less
details.less
_main.less
ディレクトリの各サブディレクトリでファイルを検索する Gulp タスクを作成しless/
、これを gulp-less に渡し、出力を次のcss/
ようにディレクトリに書き込みたいと思います。
css/
core.css
contact.css
_main.less
そのディレクトリに他のファイルが含まれているため、_main.less
ファイルのみを解析する必要がありますが、出力ファイルにはそのディレクトリの名前が必要です。
これまでのところ、私はこれを持っています:
gulp.src('less/*/*/_main.less')
.pipe(less())
.pipe(gulp.dest('css'));
ただし、これにより、次のようなディレクトリ構造が作成されます。
css/
core/
_main.css
contact/
_main.css
しかし、それは私が望むものではありません。正規表現を使用してディレクトリ名を一致させ、これを var に戻し、matches
それに応じてファイルの名前を変更することを考えていました。このようなもの:
gulp.src(/less\/[^\/]+\/([^\/]+)\/_main.less/)
.pipe(less())
.pipe(rename(function(context) {
context.src.matches[1] + '.css'
}))
.pipe(gulp.dest('css'));
このコードは単なる例です。このようなことを行う方法、またはそれが可能かどうかさえわかりません。
これは可能ですか?もしそうなら、どのように?