运行Node server +编译前端资产的最佳方法?

时间:2016-09-10 15:16:23

标签: node.js gulp webpack

我是Node开发新手,使用Express API后端和React前端处理一个小型统计应用。我正在努力连接一个开发启动脚本,该脚本会监视我的文件和

的变化
  • 重新启动节点服务器
  • 运行测试
  • 使用webpack
  • 构建React前端JS
  • 编译SCSS

我有Gulp任务可以单独使用这些任务,但我不知道并行运行它们的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

您可以将多个gulp任务添加到单个gulp任务dependent tasks。依赖任务由一系列gulp任务名称定义。这些任务是并行运行的。

gulp.task('webpack', () => { 
  // build webpack 
});

gulp.task('test', () => { 
  // run tests 
});

gulp.task('scss', () => { 
  // compile scss 
});

gulp.task('server', () => { 
  // run and restart server 
});

// Runs all the tasks in parallel
gulp.task('run', [ 'webpack', 'scss', 'test', 'server' ]);

如果您有一项依赖于其他任务的任务,例如您可能想要在启动服务器之前构建您的webpack并编译您的scss,您可以将它们作为依赖项添加到单个任务上,并且该任务将无法运行,直到依赖任务已经完成。

gulp.task('webpack', (done) => { 
  // build webpack 

  return done();  // signals completion of 'webpack' task to gulp
});

gulp.task('test', () => { 
  // run tests 
});

gulp.task('scss', (done) => { 
  // compile scss 

  return done(); // signals completion of 'scss' task to gulp
});

// The actual callback for the 'server' task won't execute until
// the 'webpack' and 'scss' tasks have completed
gulp.task('server', ['webpack', 'scss'], () => { 
  // run and restart server 
});

gulp.task('run', ['test', 'server']);