Nói rằng tôi có một cấu trúc thư mục CSS LESS như thế này:tập tin Rename dựa trên regex trong Gulp
less/
core/
_main.less
header.less
body.less
footer.less
contact/
_main.less
form.less
details.less
Tôi muốn viết một nhiệm vụ Gulp rằng sẽ tìm kiếm _main.less
file trong mỗi thư mục con của less/
dir, chuyển thông tin này phải nuốt chửng-ít và viết kết quả vào dir css/
như thế này:
css/
core.css
contact.css
Vì _main.less
bao gồm các tập tin khác trong đó là thư mục, chỉ có _main.less
file này sẽ phải được phân tích, nhưng tôi muốn các tập tin đầu ra có tên của thư mục đó trong
Cho đến nay tôi đã này:.
gulp.src('less/*/*/_main.less')
.pipe(less())
.pipe(gulp.dest('css'));
Nhưng điều này sẽ tạo ra một cấu trúc thư mục như thế này:
css/
core/
_main.css
contact/
_main.css
Nhưng đó không phải là những gì tôi muốn. Tôi đã suy nghĩ để sử dụng một regex để phù hợp với tên thư mục, có được điều này trở lại trong một var matches
, và đổi tên các tập tin cho phù hợp. Một cái gì đó như thế này:
gulp.src(/less\/[^\/]+\/([^\/]+)\/_main.less/)
.pipe(less())
.pipe(rename(function(context) {
context.src.matches[1] + '.css'
}))
.pipe(gulp.dest('css'));
Mã này chỉ là một ví dụ. Tôi không thể tìm ra cách để làm một cái gì đó như thế này, hoặc nếu nó thậm chí có thể.
Điều này có khả thi không? Nếu vậy, làm thế nào?