1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
| [template]: 支持默认的几种模板类型, 用户可以通过select命令进行选择 --git: 等同于通过git init命令创建一个新的Git项目 --install: 支持自动下载依赖 --yes: 跳过命令行交互, 直接使用默认配置
pnpm i inquirer arg function parseArgumentsIntoOptions(rawArgs) { const args = arg( { '--git': Boolean, '--yes': Boolean, '--install': Boolean, '-g': '--git', '-y': '--yes', '-i': '--install' }, { argv: rawArgs.slice(2) } )
return { skipPrompts: args['--yes'] || false, git: args['--git'] || false, template: args._[0], runInstall: args['--install'] || false } }
async function promptForMissingOptions(options) { const defaultTemplate = 'JavaScript' if (options.skipPrompts) { return { ...options, template: options.template || defaultTemplate } } const questions = [] if (!options.template) { questions.push({ type: 'list', name: 'template', message: 'Please choose which project template to use', choices: ['JavaScript', 'TypeScript'], default: defaultTemplate }) } if (!options.git) { questions.push({ type: 'confirm', name: 'git', message: 'Initialize a git repository?', default: false }) } const answers = await inquierer.prompt(questions) return { ...options, template: options.template || answers.template, git: options.git || answers.git } }
|