运行顺序中的第二个任务不会运行

时间:2016-05-11 07:48:31

标签: node.js gulp run-sequence

假设我有以下任务:

var express=require('express');
var app=express();
var fs=require('fs');
var mongoose = require('mongoose');

var schema = mongoose.Schema;
var userSchema = new schema({
      name:{type:String},
      id: Number,
      grade: Number,
      year: Number,
      coures:{type:String}
  },  {collection: 'json'});

var User= mongoose.model('student',userSchema);
module.exports=User;

//return all students in json

module.exports = function(app) { 
   app.get('/getAllStudent', function(req,res) {
    student.find({},function(err,user){
            if(err) throw err;
            console.log(User);
            mongoose.disconnect();
        });
    })

当我做这样的事情时:

gulp.task('my-task', function (cb) {
    fs.appendFileSync('myPath', 'data');
});

gulp.task('build', function (cb) { runSequence('my-task', 'some-task',cb); }); 运行并完成,但my-task永远不会运行。

我的问题是:如何在some-task完成后some-task运行?

1 个答案:

答案 0 :(得分:1)

你的问题是gulp没有注意到my-task已经完成。当您声明回调函数cb时,您必须实际调用回调函数:

gulp.task('my-task', function (cb) {
  fs.appendFileSync('myPath', 'data');
  cb();
});

或者你可以完全退出回调,因为fs.appendFileSync是同步的:

gulp.task('my-task', function () {
  fs.appendFileSync('myPath', 'data');
});