Ответ 1
Это не будет слишком сложно, в зависимости от того, насколько вам нужно, чтобы он был динамичным. Gulp - это чистый JS, поэтому вы можете легко написать свои собственные функции. вы можете использовать плагин gulp-rename
для переименования части или всего имени файла перед сохранением.
Вот приблизительная идея, чтобы вы начали:
var rename = require('gulp-rename'),
path = require('path'),
glob = require('glob'); // npm i --save-dev glob
var components = glob.sync('components/*').map(function(componentDir) {
return path.basename(componentDir);
});
components.forEach(function(name) {
gulp.task(name+'-style', function() {
return gulp.src('components/'+name+'/styles.scss')
.pipe(sass()) // etc
.pipe(rename(name + '.css'))
.pipe(gulp.dest('public/assets/css'))
});
gulp.task(name+'-js', function() {
// similar idea for JS files
});
gulp.task(name+'-build', [name+'-style', name+'-js']);
});
// build all components
gulp.task('build-components', components.map(function(name){ return name+'-build'; }));
Теперь у вас будут задачи с именем component_1-build
, component_1-style
, component_1-js
и т.д. для каждого компонента.
У вас также есть задача, которая может создавать все компоненты.