【问题标题】:Gulp.js task ends before all files all processedGulp.js 任务在所有文件都处理完之前结束
【发布时间】:2014-11-19 05:54:13
【问题描述】:

我想在构建过程结束时使用 gulp-inject 将所有 javascript 文件包含在 html 中。我想使用 CI,所以我的目标是始终从清除输出目录开始并生成全新版本的公共目录。问题是我的构建速度很慢 - 我在许多文件上都使用了 angular.js 和 cofee 脚本。我的任务是这样的:

gulp.task 'coffee', () ->
     gulp.src files
        .pipe $.flatten()
        .pipe $.if(!argv.production, $.sourcemaps.init())
        .pipe $.coffee().on 'error', (err) -> console.log(err)
        .pipe $.ngAnnotate()
        .pipe gulp.dest JS_OUTPUT

不幸的是,文件在构建完成后很长时间才被处理 - 我有很多文件,每个文件的操作都需要很长时间。启动 gulp-inject 时它们不存在。

为什么即使文件仍在处理中,gulp.js 任务也会结束?

【问题讨论】:

  • “任务结束”是什么意思?你能发布你的整个 gulpfile 吗?

标签: coffeescript gulp gulp-inject


【解决方案1】:

我不确定您的示例(翻译成 javascript)是否返回某些内容:返回流是 gulp 必须知道任务是否已完成的方法之一。

您可以阅读此食谱:running-tasks-in-series。在不阅读文档的情况下理解基础知识对我来说非常有用.. :D

【讨论】:

  • 这应该是一条评论。仅供参考,coffeescript 总是返回最后一个表达式。
  • 所以这不是退货问题,感谢您的确认,咖啡任务看起来不错..所以问题必须在调用者任务中,我建议的配方显示了如何解决依赖关系问题。
  • 关于 SO 的答案是自包含的。如果该链接断开,则此答案将毫无用处。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-03
  • 1970-01-01
相关资源
最近更新 更多