【问题标题】:Gulp isn't running rightGulp 运行不正常
【发布时间】:2015-03-09 19:25:21
【问题描述】:

我有这个任务:

  • html:

    • 将.jade转换成.html
    • 将 bower 资源(css、js 和字体)复制到 /dest/vendor 文件夹
    • 将凉亭资源添加到 .html(脚本和链接标签)
    • 将我的 js(来自 /dest/js)和我的 css(来自 /dest/css)添加到 .html(如 prev.)
  • 构建

    • 清理 /dest 文件夹
    • 将我的 js 复制到 /dest/js(只需复制,无需处理)
    • 处理我的 less 文件,并作为 css 移动到 /dest/css

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

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

【问题讨论】:

    标签: javascript gulp wiredep gulp-inject


    【解决方案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包来保证任务依赖的顺序。

    【讨论】:

      猜你喜欢
      • 2021-02-12
      • 2010-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-18
      • 2021-10-24
      • 2014-10-04
      • 1970-01-01
      相关资源
      最近更新 更多