首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >任务是单独的,而不是集体的。

任务是单独的,而不是集体的。
EN

Stack Overflow用户
提问于 2015-01-02 09:43:26
回答 1查看 297关注 0票数 0

我有三个任务要依次运行:cleanmincat,然后是serve

代码语言:javascript
复制
var gulp = require('gulp');
var webserver = require('gulp-webserver');
var usemin = require('gulp-usemin');
var uglify = require('gulp-uglify');
var minifyHtml = require('gulp-minify-html');
var minifyCss = require('gulp-minify-css');
var rev = require('gulp-rev');
var rename = require('gulp-rename');
var del = require('del');
var sequential = require('run-sequence');

gulp.task('clean', function () {
    del(['./build/*.*', './build/*']);
});

gulp.task('mincat', function () {
    gulp.src('./Index.html')
      .pipe(usemin({
          css: [minifyCss(), 'concat'],
          html: [minifyHtml({ empty: true })],
          js: [uglify()],
          js1: [uglify()]
      }))
      .pipe(gulp.dest('./build/'));
});

gulp.task('serve', function () {
    gulp.src('build')
      .pipe(webserver({
          host: 'localhost',
          port: 8080,
          livereload: true,
          open: true
      }));
});

gulp.task('dev', function () {
    sequential('clean','mincat','serve');
});

如果我从命令提示符一个一个地运行这3个任务,它就能工作。

代码语言:javascript
复制
gulp clean
gulp mincat
gulp serve

现在,我创建了一个任务,使用单个命令来运行所有的3,它不起作用。我试过所有的表格

  1. 添加了运行顺序插件 gulp.task('dev', function () { sequential('clean','mincat','serve'); });
  2. 最初并行运行 gulp.task('dev', ['clean','mincat','serve'])
  3. 我还试着把发球分开 gulp.task('dev', ['clean','mincat'] function () { gulp.start('serve'); })

但是没有这些工作,有人能指出这个问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-02 11:42:36

首先,您的2不能工作,因为gulp依赖项都是并行运行的,没有特定的顺序。这3可以工作,但它并不是真正的建议,因为它没有遵循吞咽指南。

这就让我们来看看1,你所做的是正确的,但是你正在经历的问题是,gulp不知道你的任务什么时候完成,所以它相当于并行运行所有的东西。

要使任务同步,您必须返回它的流。因为del不是流,所以您只需要使用callback。对于你的serve,我不认为你必须这样做,因为它终于推出了。

这将看起来像:

代码语言:javascript
复制
gulp.task('clean', function (cb) {
  del(['./build/*.*', './build/*'], cb);
});

gulp.task('mincat', function () {
  return gulp.src('./Index.html')
    .pipe(usemin({
      css: [minifyCss(), 'concat'],
      html: [minifyHtml({ empty: true })],
      js: [uglify()],
      js1: [uglify()]
    }))
    .pipe(gulp.dest('./build/'));
});

我不明白为什么要考虑.js1文件,顺便说一下,您的index.html应该是小写的:)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27740126

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档