Я регулярно работаю над несколькими проектами WordPress, где одновременно работаю над созданием как тем, так и плагинов. У меня есть gulpfile.js в моей папке темы, которая компилирует .scss в .css-файлы. Мне интересно, могу ли я создать какой-то «главный» gulpfile, поместить его в корневую папку и затем скомпилировать файлы .scss всякий раз, когда мы их имеем. Идея состоит в том, что если какая-либо папка содержит папку/scss, Gulp будет компилировать ее основные .scss-файлы, а затем сгенерировать папку/css (такая же идея может быть адаптирована для скомпилированных js-файлов, изображений и т. Д.).Gulpfile.js для обработки нескольких файлов в нескольких папках
Вот моя задача, которая компилирует файлы .scss до сих пор.
var gulp = require('gulp'),
sass = require('gulp-sass'),
autoprefixer = require('gulp-autoprefixer'),
minifycss = require('gulp-minify-css'),
rename = require('gulp-rename'),
clean = require('gulp-clean'),
concat = require('gulp-concat'),
cache = require('gulp-cache'),
notify = require('gulp-notify'),
projectTitle = 'Project Name';
// styles task
gulp.task('styles', function() {
return gulp.src('src/styles/*.scss')
.pipe(sass({ paths: ['src/styles/'], outputStyle: 'expanded' }))
.pipe(notify({
title: projectTitle,
message: 'File: <%= file.relative %> was compiled!'
}))
.pipe(autoprefixer('last 2 version', 'safari 5', 'ie 8', 'ie 9', 'opera 12.1', 'ios 6', 'android 4'))
.pipe(gulp.dest('assets/css'))
.pipe(rename({ suffix: '.min' }))
.pipe(minifycss())
.pipe(gulp.dest('assets/css'))
.pipe(notify({
title: projectTitle,
message: 'Minified file: <%= file.relative %> was created/updated!'
}))
});
// styles task
gulp.task('editor-styles', function() {
return gulp.src('src/styles/editor-styles.scss')
.pipe(plumber())
.pipe(sass({ paths: ['src/styles/'] }))
.pipe(notify({
title: projectTitle,
message: 'File: <%= file.relative %> was compiled!'
}))
.pipe(autoprefixer('last 2 version', 'safari 5', 'ie 8', 'ie 9', 'opera 12.1', 'ios 6', 'android 4'))
.pipe(gulp.dest('assets/css'))
.pipe(rename({ suffix: '.min' }))
.pipe(minifycss())
.pipe(gulp.dest('assets/css'))
.pipe(notify({
title: projectTitle,
message: 'Minified file: <%= file.relative %> was created/updated!'
}))
});
// watch task
gulp.task('watch', function() {
// Watch .scss files
gulp.watch('src/styles/**/*.scss', [ 'styles' ]);
});
Каков наилучший подход в этом случае строить глобальный gulpfile.js, который работает, как это? Также было бы идеально, если задача компилирует только то, что необходимо (я видел некоторые задачи, которые все время компилируют).