javascript - Gulp 依赖任务

标签 javascript node.js build gulp concatenation

为了构建 Web 应用程序的最终 JS 源,我正在编译 JavaScript 模板、CoffeScript 源和普通 JS vendor 脚本。最后一项任务(依赖于前三个任务)会将脚本连接到一个文件中。

在以下设置中,我定义了最后一个任务,并依赖于前三个任务,最后一步永远不会执行。看来该进程不会等到部分文件写入光盘。

我也尝试过合并事件流,但这对于这样的事情来说似乎有点矫枉过正。如果有人能在这里指出正确的方向,我将不胜感激。

// compile JS templates
gulp.task('js-build-template', function() {
    gulp.src('./../app/assets/javascripts/**/*.jst.eco')
        .pipe(eco({ basePath: 'app/assets/javascripts', namespace: 'JST_ATL' }))
        .pipe(concat('_templates.js'))
        .pipe(gulp.dest('public/assets/scripts/partials'));
});

// compile CoffeeScript source
gulp.task('js-build-source', function() {
    gulp.src(js.source)
        .pipe(coffee())
        .pipe(concat('_source.js'))
        .pipe(gulp.dest('public/assets/scripts/partials'));
});

// compile vendor scripts
gulp.task('js-build-vendor', function() {
    gulp.src(js.vendor)
        .pipe(concat('_vendor.js'))
        .pipe(gulp.dest('public/assets/scripts/partials'));
});

// concatenate and fingerprint files
gulp.task('js-build', [ 'js-build-template', 'js-build-source', 'js-build-vendor' ], function() {
    gulp.src([ 'public/assets/scripts/partials/_templates.js', 'public/assets/scripts/partials/_vendor.js', 'public/assets/scripts/partials/_source.js' ])
        .pipe(concat('app.js'))
        .pipe(gulp.dest('public/assets/scripts'))
        .pipe(rev())
        .pipe(gulp.dest('public/assets/scripts'))
        .pipe(rev.manifest())
        .pipe(gulp.dest('public/assets/scripts'));
});

最佳答案

在所有 3 个任务中,您都需要返回语句

gulp.task('js-build-template', function() {
    return gulp.src('./../app/assets/javascripts/**/*.jst.eco')
        .pipe(eco({ basePath: 'app/assets/javascripts', namespace: 'JST_ATL' }))
        .pipe(concat('_templates.js'))
        .pipe(gulp.dest('public/assets/scripts/partials'));
});

这将有助于让最终任务知道它们已经完成并且需要开始......

关于javascript - Gulp 依赖任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30362338/

相关文章:

javascript - 创建二维数组并在 jquery 中循环遍历它

node.js - ExpressJS 上的子域

设置调试和 Release模式时的编译器标志

javascript - 填充位于回调函数范围之外的数组

javascript - 带有 Express.js 和 socket.io 的 NGINX |不能获取

javascript - 为灯箱幻灯片标题添加 alt 属性?

android - "phonegap run android"phonegap 3 windows下无法建工程

node.js - Express.JS 中使用动态 URL 的 HTTP 身份验证

python - 如何消除 PyInstaller 单文件夹构建中的困惑?

c++ - 子目录的Makefile目录创建