jsc.js 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 --project ./build/tsconfig.json ./build/script/cli.ts ${taskList.join(
  38. // ' '
  39. // )} ${command}`,
  40. // {
  41. // async: true,
  42. // nopipe: true,
  43. // }
  44. // );
  45. }