0

わかった

私は生成するgulpfileを持っていapp.min.jsますlibs.min.js; かなり自明です:

var dev = {
    libs: [
        'bower_components/angular/angular.min.js',
        'bower_components/angular-foundation/mm-foundation-tpls.min.js',
        'bower_components/underscore.string/dist/underscore.string.min.js'
    ]
};

var build = {
    js: 'public/js'
};

gulp.task('libs', function() {
    return gulp.src(dev.libs)
    .pipe(concat('libs.min.js'))
    .pipe(uglify({mangle: false}))
    .pipe(gulp.dest(build.js));
});

このセットアップでは、ライブラリを追加または削除するたびに、それを手動でdev.libs配列に追加し (正しい順序で)、Gulp を再起動して新しい lib ファイルを表示する必要があります。

私は欲しい

使用している js ライブラリを、特に定義しなくても連結できるようにしたいと考えています(array) dev.libs。現時点で を使用するreturn gulp.src('**/*.js')と、 内のすべての js ファイルが連結されると思いますがbower_components、これは明らかにばかげています。

質問

gulpfile でライブラリを定義しなくても、必要なライブラリを自動的にロードして連結する方法はありますか?

4

1 に答える 1

1

Bowerの場合、コンテンツを解析し、各依存関係のファイルを検索するプラグインmain-bower-filesを使用できるため、各ライブラリを宣言する必要はありません。bower.jsonmain

var bowerFiles = require('main-bower-files');

その後、次のことができます。

gulp.task('libs', function () {
  return gulp.src(bowerFiles())
    .pipe(concat('libs.min.js'))
    .pipe(uglify({mangle: false}))
    .pipe(gulp.dest(build.js));
});
于 2014-10-01T21:08:34.497 に答える