Как объединить несколько файлов 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

Другие вопросы по тегам