3

我需要使用具有以下文件夹结构的 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 时,文件被简单地复制并且不进行注入。知道可能出了什么问题吗?

4

1 回答 1

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

于 2015-05-19T13:00:54.517 回答