3

/components/slider/index.html にファイルがあります。gulp-inject を使用して、関連する css/js ファイルを別のフォルダーから挿入する gulp タスクをセットアップします。

gulp.task('default', function() {

    return gulp.src('./components/**/*.html')
    .pipe( inject(gulp.src(['./assets/css/bootstrap/*.css'], {read: false}), { relative: true }) )
    .pipe( inject(gulp.src(['./assets/js/jquery/*.js'], {read: false}), {starttag: '<!-- inject:head:{{ext}} -->', relative: true} ) )
    .pipe(gulp.dest('./dist'));

});

ここで、gulp-inject を使用して相対的に注入するために、パイプ処理している html ソースの横にある js ファイルのソースを取得する必要があります。

とにかくgulp.src('./components/**/*.html')パイプに入り、そこから兄弟のjsファイルを取得する方法はありますか? なにか提案を?

4

1 に答える 1

1

gulp-injectを使用してそれを行うことはできないことが判明したため、ディレクトリパスのリストを取得してから、それぞれに対して個別にgulp-injectを実行しました。

このようにして、注入を開始する前に、すべてのフォルダーとファイルのパスにアクセスできました。

var fs = require('fs');
var dirPath = '/components/widgets/';
var result = [];  //this is going to contain paths

fs.readdir(__dirname + dirPath, function (err, filesPath) {
    if (err) throw err;
    result = filesPath.map(function (filePath) {
        return dirPath + filePath;
    });

    function do_inject(entry) {
        // Injection Code using gulp-inject
    }

    result.forEach(function(entry) {
        do_inject(entry);
    });

});

また、gulp-inject に「addPrefix」および「addRootSlash」オプションを使用して、希望どおりに動作させることになりました。いくつかの追加情報だけで、誰かを助けるかもしれません。

于 2016-03-17T19:38:15.380 に答える