gulp构建任务不使用回调(cb)

时间:2016-01-18 07:40:43

标签: javascript node.js callback gulp

这里是gulp文件,我正在使用bulid任务来构建所有文件和文件夹目录....所以我的gulp构建任务无法正常工作....

我为构建最终构建目录创建了三个任务   - bulid:cleanfolder   - 构建:复制   - build:remove

gulp构建任务



/******************************************
bulid task
*******************************************/

// Clear out all files and folder from bulid folder
gulp.task('build:cleanfolder', function(cb){
  del([
      'build/**'
    ], cb);
});

// task to create build Directory for all files
gulp.task('build:copy', ['build:cleanfolder'], function(){
  return gulp.src('../atoz-website/*')
  .pipe(gulp.dest('build'));
});

// task to remove unwanted file into build Directory
gulp.task('build:remove', ['build:copy'], function(cb){
  del([
      'build/assets',
      'build/gulpfile.js',
      'build/package.json',
      'build/readme.md',
      'build/.gitignore'
    ], cb);
});

gulp.task('build', ['build:copy', 'build:remove']);




问题只是臃肿:清理文件毁了而不是其他任务!



xxxxxxxxxxx/xxxxxxxxxxx/atoz-website (new)
$ gulp build
[13:08:41] Using gulpfile D:\VE Work\Website\atoz-website\gulpfile.js
[13:08:41] Starting 'build:cleanfolder'...




1 个答案:

答案 0 :(得分:0)

请在Copy/Deletion in Gulp randomly gives ENOENT

上查看我的回答

您需要安装一个额外的插件:

npm install vinyl-paths

将此应用于您的gulpfile将如下所示:

var del = require('del');
var vinylPaths = require('vinyl-paths');

// Clear out all files and folder from build folder
gulp.task('build:cleanfolder', function(){
  return gulp.src(['build'])
    .pipe(vinylPaths(del));
});

// task to create build Directory for all files
gulp.task('build:copy', ['build:cleanfolder'], function(){
  return gulp.src('../atoz-website/*')
  .pipe(gulp.dest('build'));
});

// task to remove unwanted file into build Directory
gulp.task('build:remove', ['build:copy'], function(){
  return gulp.src([
      'build/assets',
      'build/gulpfile.js',
      'build/package.json',
      'build/readme.md',
      'build/.gitignore'
    ])
    .pipe(vinylPaths(del));
});

gulp.task('build', ['build:copy', 'build:remove']);