tis-cli前端项目快速搭建命令行工具
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

50 lines
1.1 KiB

  1. #!/usr/bin/env node
  2. const { Command } = require('commander');
  3. const Prompt = require('inquirer');
  4. const Create = require('./command/create');
  5. const program = new Command();
  6. const handleExit = () => {
  7. process.exit();
  8. };
  9. const handleError = (e) => {
  10. console.error('ERROR! 执行过程中出现错误');
  11. console.error(e);
  12. console.log('退出执行...');
  13. process.exit(1);
  14. };
  15. process.on('SIGINT', handleExit);
  16. process.on('uncaughtException', handleError);
  17. const Cli = program.command('tis-cli');
  18. Cli.version(require('../package.json').version).usage('<command> [options]');
  19. // 选项
  20. const templateOpts = [
  21. {
  22. type: 'list',
  23. name: 'templateType',
  24. message: '模板类型',
  25. choices: ['platform', 'application', 'component']
  26. }
  27. ];
  28. // 通过模板创建项目
  29. Cli
  30. .command('create <projectName>')
  31. .description('通过选择模板类型,创建新的项目')
  32. .action(async (projectName) => {
  33. Prompt.prompt(templateOpts).then(result => {
  34. console.log('选择结果:');
  35. console.log(JSON.stringify(result));
  36. // 创建
  37. Create(projectName, 1);
  38. })
  39. });
  40. Cli.parse(process.argv)