Gulp运行不正常

时间:2015-03-09 19:25:22

标签: javascript gulp wiredep gulp-inject

我有这个任务:

  • HTML:

    • .html中的.jade
    • 将bower资源(css,js和fonts)复制到/ dest / vendor文件夹
    • 将bower资源添加到.html(脚本和链接标记)
    • 将我的js(从/ dest / js)和我的css(从/ dest / css)添加到.html(如上一页)
  • 构建

    • clean / dest文件夹
    • 将我的js复制到/ dest / js(只是复制,没有进程)
    • 处理我较少的文件,并移至/ dest / css作为css

如果我运行gulp build然后gulp html,一切正常。但是,如果添加html作为构建最后一部分,则不要再工作。 Jade在.html文件中转换,所有资源(我的和bower)都被复制到/ dest文件夹,但wiredepinject(添加脚本和链接标记)似乎什么都不做。

这是我的任务的一部分:https://gist.github.com/Falci/f52d4144318c9d5e4c2f

1 个答案:

答案 0 :(得分:1)

我发现您的构建存在一些潜在问题。

  1. 您必须从每项任务返回。 Gulp依赖于每个任务的返回值来确定该任务何时完成。如果使用没有返回值的任务作为另一个任务的依赖项,则将立即解决依赖关系,而不是等待任务完成。您应该使用返回值,而不是使用next()回调。

    function htmlAssetsTask () {
        var sources = gulp.src(config.filesets.assetsDest, {read: false});
        return gulp.src(config.filesets.html)
        ...
    }
    
  2. Gulp任务依赖不按顺序运行。这意味着在任务中:

    gulp.task('build', ['clean:dest', 'build:js', 'build:less', 'html']);
    

    依赖项可以按任何顺序运行。我建议使用run-sequence包来确保任务依赖的顺序。