假设我有一个这样的 LESS CSS 目录结构:
less/
core/
_main.less
header.less
body.less
footer.less
contact/
_main.less
form.less
details.less
我想编写一个 Gulp 任务,它将_main.less
在目录的每个子目录中查找文件,将其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
但这不是我想要的。我正在考虑使用正则表达式来匹配目录名称,将其返回到matches
var 中,然后相应地重命名文件。像这样的东西:
gulp.src(/less\/[^\/]+\/([^\/]+)\/_main.less/)
.pipe(less())
.pipe(rename(function(context) {
context.src.matches[1] + '.css'
}))
.pipe(gulp.dest('css'));
此代码只是一个示例。我无法弄清楚如何做这样的事情,或者是否有可能。
这可能吗?如果是这样,怎么做?