这是有趣的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 backend:在两个不同的终端上服务,这很好。但是,如果我做gulp前端:服务后端:服务或gulp调试(实际上是相同的,它不会重建我的索引文件。
任何指针?感谢。
答案 0 :(得分:1)
gulp.task 'backend:serve', ['backend:build', 'backend:copy'], ->
plugins.nodemon
cwd: config.paths.backendBuild
script: "server.js"
我应该做的
gulp.task 'backend:serve', ['backend:build', 'backend:copy'], ->
plugins.nodemon
watch: config.paths.backendBuild
script: "backend/server.js"
代替。我不确定在nodemon中设置process.cwd()是否是一个好主意,但这是有意义的,因为这种行为可能来自nodemon,它可能并不期望作为更大的一部分运行项目