这是有趣的 gulpfile:
gulp.task 'index', ['coffee:build', 'templates:build', 'bower', 'sass:build', 'frontend:assets'], ->
bowerCss = gulp.src ["bower_components/**/*.css"], cwd: 'frontend'
appJs = gulp.src ["scripts/**/*.js"], cwd: 'frontend'
appCss = gulp.src ["**/*.css", '!bower_components/**'], cwd: 'frontend'
return gulp.src 'web/index.html'
.pipe plugins.inject appJs.pipe(plugins.angularFilesort())
.pipe plugins.inject appCss
.pipe plugins.debug()
.pipe plugins.inject bowerCss, {name: 'bower'}
.pipe plugins.debug()
.pipe gulp.dest 'frontend'
调用它最终会在我的 index.html 中注入一些文件名。它工作正常。
当我将其称为更大批次的一部分时:
gulp.task 'develop', [
'backend:coffee'
'backend:copy'
'backend:serve'
'frontend:serve' # index is required by frontend:serve
'coffee:watch'
'sass:watch'
'templates:watch']
它只是有点失败。我没有从 gulp-inject 和 gulp-debug 获得看起来合理的输出,而是从 gulp-debug 获得以下内容:
[23:06:59] Starting 'index'...
[23:06:59] Starting 'templates:watch'...
[23:06:59] gulp-debug: end event fired (2014-08-03 06:06:59 UTC)
[23:06:59] gulp-debug: end event fired (2014-08-03 06:06:59 UTC)
[23:06:59] Finished 'index' after 188 ms
值得注意的是,我可以做 gulp frontend:serve 并且效果很好。只有在我运行“只需启动一切”命令时才会出错。我想我错过了一些与并行化或竞争条件有关的问题,但奇怪的是,最终事件只是像那样随意触发。
现在有了这个设置,我可以在两个不同的终端上执行 gulp frontend:serve、gulp backend:serve ,这很好。但是,如果我执行 gulp frontend:serve backend:serve 或 gulp debug (实际上是相同的,它不会重建我的索引文件。
任何指针?谢谢。