'init'
This commit is contained in:
		
							
								
								
									
										26
									
								
								plop-templates/view/index.hbs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								plop-templates/view/index.hbs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,26 @@
 | 
			
		||||
{{#if template}}
 | 
			
		||||
<template>
 | 
			
		||||
  <div />
 | 
			
		||||
</template>
 | 
			
		||||
{{/if}}
 | 
			
		||||
 | 
			
		||||
{{#if script}}
 | 
			
		||||
<script>
 | 
			
		||||
export default {
 | 
			
		||||
  name: '{{ properCase name }}',
 | 
			
		||||
  props: {},
 | 
			
		||||
  data() {
 | 
			
		||||
    return {}
 | 
			
		||||
  },
 | 
			
		||||
  created() {},
 | 
			
		||||
  mounted() {},
 | 
			
		||||
  methods: {}
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
{{/if}}
 | 
			
		||||
 | 
			
		||||
{{#if style}}
 | 
			
		||||
<style lang="scss" scoped>
 | 
			
		||||
 | 
			
		||||
</style>
 | 
			
		||||
{{/if}}
 | 
			
		||||
							
								
								
									
										55
									
								
								plop-templates/view/prompt.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								plop-templates/view/prompt.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,55 @@
 | 
			
		||||
const { notEmpty } = require('../utils.js')
 | 
			
		||||
 | 
			
		||||
module.exports = {
 | 
			
		||||
  description: 'generate a view',
 | 
			
		||||
  prompts: [{
 | 
			
		||||
    type: 'input',
 | 
			
		||||
    name: 'name',
 | 
			
		||||
    message: 'view 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 'View require at least a <script> or <template> tag.'
 | 
			
		||||
      }
 | 
			
		||||
      return true
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  ],
 | 
			
		||||
  actions: data => {
 | 
			
		||||
    const name = '{{name}}'
 | 
			
		||||
    const actions = [{
 | 
			
		||||
      type: 'add',
 | 
			
		||||
      path: `src/views/${name}/index.vue`,
 | 
			
		||||
      templateFile: 'plop-templates/view/index.hbs',
 | 
			
		||||
      data: {
 | 
			
		||||
        name: name,
 | 
			
		||||
        template: data.blocks.includes('template'),
 | 
			
		||||
        script: data.blocks.includes('script'),
 | 
			
		||||
        style: data.blocks.includes('style')
 | 
			
		||||
      }
 | 
			
		||||
    }]
 | 
			
		||||
 | 
			
		||||
    return actions
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user