jsc.ts 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. // js调用cli 兼容调用ts
  2. const { sh } = require('tasksfile');
  3. const { argv } = require('yargs');
  4. // const execa = require('execa');
  5. let command = ``;
  6. Object.keys(argv).forEach((key) => {
  7. if (!/^\$/.test(key) && key !== '_') {
  8. // @ts-ignore
  9. if (argv[key]) {
  10. command += `--${key} `;
  11. }
  12. }
  13. });
  14. // 执行任务名称
  15. let taskList = argv._;
  16. let NODE_ENV = process.env.NODE_ENV || 'development';
  17. if (taskList.includes('build') || taskList.includes('report') || taskList.includes('preview')) {
  18. NODE_ENV = 'production';
  19. }
  20. if (taskList && Array.isArray(taskList) && taskList.length) {
  21. // execa(
  22. // 'cross-env',
  23. // [
  24. // `NODE_ENV=${NODE_ENV}`,
  25. // 'ts-node',
  26. // '--project',
  27. // './build/tsconfig.json',
  28. // './build/script/cli.ts',
  29. // taskList.join(' '),
  30. // command,
  31. // ],
  32. // {
  33. // stdio: 'inherit',
  34. // }
  35. // );
  36. sh(
  37. `cross-env NODE_ENV=${NODE_ENV} ts-node --files -P ./build/tsconfig.json ./build/script/cli.ts ${taskList.join(
  38. ' '
  39. )} ${command}`,
  40. {
  41. async: true,
  42. nopipe: true,
  43. }
  44. );
  45. }