1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- 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
- }
- }
|