core.start.ts 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. import concurrently from 'concurrently';
  2. import { Task, TaskRunner } from './task';
  3. interface StartTaskOptions {
  4. watchThemes: boolean;
  5. hot: boolean;
  6. }
  7. const startTaskRunner: TaskRunner<StartTaskOptions> = async ({ watchThemes, hot }) => {
  8. const jobs = [
  9. watchThemes && {
  10. command: 'nodemon -e ts -w ./packages/grafana-ui/src/themes -x yarn run themes:generate',
  11. name: 'SASS variables generator',
  12. },
  13. hot
  14. ? {
  15. command: 'webpack-dev-server --progress --colors --mode development --config scripts/webpack/webpack.hot.js',
  16. name: 'Dev server',
  17. }
  18. : {
  19. command: 'webpack --progress --colors --watch --mode development --config scripts/webpack/webpack.dev.js',
  20. name: 'Webpack',
  21. },
  22. ];
  23. try {
  24. await concurrently(jobs.filter(job => !!job), {
  25. killOthers: ['failure', 'failure'],
  26. });
  27. } catch (e) {
  28. console.error(e);
  29. process.exit(1);
  30. }
  31. };
  32. export const startTask = new Task<StartTaskOptions>();
  33. startTask.setName('Core startTask');
  34. startTask.setRunner(startTaskRunner);