咕噜咕噜:只连接必要的JS文件



我得到了什么

我有一个生成app.min.jslibs.min.js的gullfile;不言自明:

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-libs,而不必在(array) dev.libs中专门定义它们。目前,如果我使用return gulp.src('**/*.js'),我相信它会连接bower_components中的每一个js文件,这显然是荒谬的。

问题

有没有办法自动加载我需要的库concat,而不必在gullfile中定义它们

对于Bower,您可以使用插件主Bower文件,它将解析bower.json的内容并搜索每个依赖项的main文件,因此您不必声明每个lib。

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));
});

相关内容

  • 没有找到相关文章

最新更新