我得到了什么
我有一个生成app.min.js
和libs.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));
});