UNPKG

@vue/cli

Version:

Command line interface for rapid Vue.js development

42 lines (38 loc) 1.43 kB
module.exports = cli => { cli.injectFeature({ name: 'TypeScript', value: 'ts', short: 'TS', description: 'Add support for the TypeScript language', link: 'https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-typescript', plugins: ['typescript'] }) cli.injectPrompt({ name: 'tsClassComponent', when: answers => answers.features.includes('ts'), type: 'confirm', message: 'Use class-style component syntax?', description: 'Use the @Component decorator on classes.', link: 'https://vuejs.org/v2/guide/typescript.html#Class-Style-Vue-Components', default: answers => answers.vueVersion !== '3' }) cli.injectPrompt({ name: 'useTsWithBabel', when: answers => answers.features.includes('ts'), type: 'confirm', message: 'Use Babel alongside TypeScript (required for modern mode, auto-detected polyfills, transpiling JSX)?', description: 'It will output ES2015 and delegate the rest to Babel for auto polyfill based on browser targets.', default: answers => answers.features.includes('babel') }) cli.onPromptComplete((answers, options) => { if (answers.features.includes('ts')) { const tsOptions = { classComponent: answers.tsClassComponent } if (answers.useTsWithBabel) { tsOptions.useTsWithBabel = true } options.plugins['@vue/cli-plugin-typescript'] = tsOptions } }) }