我有一个 Gulp 任务,它呈现一个包含 Lodash 模板的文件并将其放在我的构建目录中。我使用gulp-template进行渲染。
为了正确渲染,我的模板需要从我的构建目录中传递一个文件列表。我使用glob得到这个列表。由于 glob API 是异步的,我不得不像这样编写我的任务:
gulp.task('render', function() {
glob('src/**/*.js', function (err, appJsFiles) {
// Get rid of the first path component.
appJsFiles = _.map(appJsFiles, function(f) {
return f.slice(6);
});
// Render the file.
gulp.src('src/template.html')
.pipe(template({
scripts: appJsFiles,
styles: ['style1.css', 'style2.css', 'style3.css']
}))
.pipe(gulp.dest(config.build_dir));
});
});
这对我来说似乎很不雅。有没有更好的方法来编写这个任务?