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.
|
|
const { notEmpty } = require('../utils.js')
module.exports = { description: 'generate vue component', prompts: [{ type: 'input', name: 'name', message: 'component name please', validate: notEmpty('name') }, { type: 'checkbox', name: 'blocks', message: 'Blocks:', choices: [{ name: '<template>', value: 'template', checked: true }, { name: '<script>', value: 'script', checked: true }, { name: 'style', value: 'style', checked: true } ], validate(value) { if (value.indexOf('script') === -1 && value.indexOf('template') === -1) { return 'Components require at least a <script> or <template> tag.' } return true } } ], actions: data => { const name = '{{properCase name}}' const actions = [{ type: 'add', path: `src/components/${name}/index.vue`, templateFile: 'plop-templates/component/index.hbs', data: { name: name, template: data.blocks.includes('template'), script: data.blocks.includes('script'), style: data.blocks.includes('style') } }]
return actions } }
|