包含与gulp.js异步的连接脚本

时间:2014-04-21 15:36:38

标签: node.js asynchronous gulp

我正在尝试执行以下操作:

gulp.src('js/*.js')
    .pipe(concat('_temp.js'))
    .pipe(gulp.dest('js/'));

gulp.src('build/js/app.js')
    .pipe(replace('// includes', fs.readFileSync('js/_temp.js')))
    .pipe(uglify())
    .pipe(rename('app.min.js'))
    .pipe(gulp.dest('build/js'));

所以,我正在联接.js中的所有js/个文件。连接文件名为_temp.js;

之后,我正在阅读app.js并尝试将// includes字符串替换为连接的_temp.js文件。这不起作用,因为节点表示该文件不存在。它确实存在,所以我第二次运行这个任务,它的工作原理。

这很可能与异步性有关,但我无法看到我会如何做到这一点?

1 个答案:

答案 0 :(得分:3)

您可以将任务拆分为2,并使用Gulp的依赖解析系统使其中一个任务一个接一个地运行。

gulp.task('task1', function () { ... });
gulp.task('task2', ['task1'], function () { ... });