我得到了什么
我有一个 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')
,我相信它会连接 bower_components
中的每个 js 文件,这会显然是荒谬的。
问题
有没有办法自动加载和连接我需要的库,而不必在 gulpfile 中定义它们?
最佳答案
对于Bower,您可以使用插件main-bower-files 它将解析您的 bower.json
内容并搜索每个依赖项的 main
文件,因此您不必声明每个库。
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));
});
关于javascript - 咕噜声/咕噜声 : Concatenate only necessary JS files?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26150602/