Как объединить несколько файлов JS внутри функции в Gulp
Мне нужно объединить все конкретные файлы в их соответствующих функциях, используя Gulp со следующей структурой папок:
modules
- header
- document.ready.js
- functions.js
- window.resize.js
- main
- document.ready.js
- functions.js
- window.resize.js
- footer
- document.ready.js
- functions.js
- window.resize.js
Конечный файл должен выглядеть так:
//All functions.js files concated.
$(document).ready(function(){
//All document.ready.js files concated.
});
$(window).resize(function(){
//All window.resize.js files concated.
});
У кого-нибудь есть идеи, как это сделать с Gulp?
У меня есть это до сих пор:
gulp.task('modules', function() {
gulp.src('js/modules/**/document.ready.js')
.pipe(concat('document.ready.js'));
var source = gulp.src('generator/assets/js/document.ready.js', {read: false});
var target = gulp.src('js/modules/modules.js');
target.pipe(inject(source), {starttag: '<!-- inject:head:js -->'})
.pipe(gulp.dest('generator/assets/js'));
});
Целевой файл var имеет следующее содержимое:
$(document).ready(function(){
<!-- inject:head:js -->
<!-- endinject -->
});
когда я запускаю gulp, файл просто копируется и инъекция не производится. Есть идеи, что может пойти не так?
1 ответ
Решение
Я решил свою проблему с этим:
var gfi = require("gulp-file-insert");
gulp.task('modules', function() {
gulp.src('js/modules/**/document.ready.js')
.pipe(concat('document.ready.js'))
.pipe(gulp.dest('generator/assets/js'));
gulp.src('js/modules/modules.js')
.pipe(gfi({
"/* file 1 */": "generator/assets/js/document.ready.js"
}))
.pipe(gulp.dest('generator/assets/js'));
});
Для замены содержимого файла вы можете использовать gulp-file-insert