在依赖任务后退出

时间:2016-06-15 17:36:33

标签: node.js gulp

我错过了什么?在我的依赖任务之后,Gulp正在退出而没有错误。在styles之后styles-clean不会继续:

var args = require('yargs').argv;
var config = require('./gulp.config')();
var del = require('del');
var gulp = require('gulp');
var $ = require('gulp-load-plugins')({lazy: true});

gulp.task('styles', ['clean-styles'], function() {
  log('Compiling less...');
  return gulp
      .src(config.less)
      .pipe($.less())
      .on('error', errorLogger)
      .pipe($.autoprefixer({browsers: ['last 2 version', '> 5%']}))
      .pipe(gulp.dest(config.temp));
});

gulp.task('clean-styles', function(done){
  var files = config.temp + '**/*.css';
  clean(files, done);
});

// -------------
function errorLogger(error) {
  log(error);
}
function clean(path, done) {
  log('Cleaning: ' + $.util.colors.blue(path));
  del(path, done);
}
function log(msg) {
  if (typeof(msg) === 'object') {
    for (var item in msg) {
      if (msg.hasOwnProperty(item)) {
        $.util.log($.util.colors.blue(msg[item]));
      }
    }
  } else {
    $.util.log($.util.colors.blue(msg));
  }
}

我已经检查了我的gulpfile(上方)和我的配置:

module.exports = function () {
  var config = {
    temp: './temp/',
    alljs: [
      './src/**/*.js',
      './*.js'
    ],
    less: './src/client/styles/styles.less'
  };
  return config;
};

1 个答案:

答案 0 :(得分:0)

想想你说的话。如果clean()正在停止该过程,那么[很可能]就是您的问题所在。

在这种情况下,您的问题是由于done回调。从v2.0开始,del包不再接受回调...因此它永远不会被调用。相反,它会返回一个承诺。这是文档...

https://github.com/sindresorhus/del/releases/tag/v2.0.0