提问者:小点点

吞咽不推荐使用run。如何撰写任务?


这是一个组合任务,我不知道如何用任务依赖项替换它。

...
gulp.task('watch', function () {
 var server = function(){
  gulp.run('jasmine');
  gulp.run('embed');
 };
 var client = function(){
  gulp.run('scripts');
  gulp.run('styles');
  gulp.run('copy');
  gulp.run('lint');
 };
 gulp.watch('app/*.js', server);
 gulp.watch('spec/nodejs/*.js', server);
 gulp.watch('app/backend/*.js', server);
 gulp.watch('src/admin/*.js', client);
 gulp.watch('src/admin/*.css', client);
 gulp.watch('src/geojson-index.json', function(){
  gulp.run('copygeojson');
 });
});

相应的变更日志https://github.com/gulpjs/gulp/blob/master/CHANGELOG.md#35[不赞成大口大口喝,快跑]


共3个答案

匿名用户

或者你可以这样做:

gulp.start('task1', 'task2');

匿名用户

gulp.task('watch', function () {
  var server = ['jasmine', 'embed'];
  var client = ['scripts', 'styles', 'copy', 'lint'];
  gulp.watch('app/*.js', server);
  gulp.watch('spec/nodejs/*.js', server);
  gulp.watch('app/backend/*.js', server);
  gulp.watch('src/admin/*.js', client);
  gulp.watch('src/admin/*.css', client);
  gulp.watch('src/geojson-index.json', ['copygeojson']);
});

您不再需要传递函数(尽管您仍然可以)来运行任务。您可以给watch一个任务名称数组,它将为您执行此操作。

匿名用户

来源:https://github.com/gulpjs/gulp/issues/755

gulp.start()从来就不是一个公共的api,也不是被使用的。如上所述,任务管理将在下一个版本中被替换......所以gulp.start()将被打破。

gulp设计的真正意图是生成常规Javascript函数,并且只生成调用它们的任务。

例子:

function getJsFiles() {
    var sourcePaths = [
        './app/scripts/**/*.js',
        '!./app/scripts/**/*.spec.js',
        '!./app/scripts/app.js'
    ];

    var sources = gulp.src(sourcePaths, { read: false }).pipe(angularFilesort());

    return gulp.src('./app/index.html')
        .pipe(injector(sources, { ignorePath: 'app', addRootSlash: false }))
        .pipe(gulp.dest('./app'));
}  
gulp.task('js', function () {
    jsStream = getJsFiles();
});

相关问题