通常使用 Browserify,如果你想合并多个文件,你可以运行如下代码:
gulp.task('build-tests', function() {
var b = browserify({
entries: ['./lib/some_specs.js', './lib/some_more_specs.js']
});
b.bundle().pipe(source('specs.js')).pipe(gulp.dest('./dist'));
})
我想用动态创建的过滤文件列表替换条目,这样每次我添加一个我想要浏览器化的新文件时都不必更新数组,它会自动执行此操作。
为此,我开始使用 gulp-filter 从文件夹中选择我希望浏览的文件:
gulp.src('lib/*.js')
.pipe(gulpFilter('*_specs.js'))
.pipe(concat('specs.js'))
);
但是因为这会返回一个异步流而不是一个数组,所以您不能使用它来代替条目。然后我认为我可以将单独的文件连接到一个虚拟文件中,然后将其传递给 Browserify。像这样:
gulp.task('build-tests', function() {
var b = browserify(
gulp.src('lib/*.js')
.pipe(gulpFilter('*_specs.js'))
.pipe(concat('specs.js'))
);
b.bundle().pipe(source('specs.js')).pipe(gulp.dest('./dist'));
})
但这会引发一个未处理的错误事件——可能是因为在 bundle 方法运行之前源文件没有被连接?
所以这让我问是否有人有执行类似或类似的事情的经验?我对 gulp 很陌生,所以任何指针也将不胜感激。谢谢。