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 に答える