一、介绍
plop可以生成定制文件名、定制路径下的模板文件。
这样有利于快速开发,特别是对于大型的后台管理系统,页面很多相似的内容,重复率很高的项目。
二、实践
2.1、安装
yarn add plop -g
2.2、package--script配置
"plop": "plop",
2.3、根目录增加plopfile.js
module.exports = function (plop) { plop.setWelcomeMessage('请选择需要创建的模式:') plop.setGenerator('page', require('./plop-tpls/page/prompt')) plop.setGenerator('page2', require('./plop-tpls/page2/prompt')) }
2.4、根目录创建plop模板目录
2.5、page目录为例:
2.5.1、index.hbs
<template> <div> <!-- Your content --> </div> </template> <script setup name="{{ properCase componentName }}"> // const { proxy } = getCurrentInstance() // const router = useRouter() // const route = useRoute() </script> <style lang="less" scoped> </style>
2.5.2、prompt.js
const path = require('path') const fs = require('fs') function getFolder(path) { let components = [] const files = fs.readdirSync(path) files.forEach(function (item) { let stat = fs.lstatSync(path + '/' + item) if (stat.isDirectory() === true && item != 'components') { components.push(path + '/' + item) components.push.apply(components, getFolder(path + '/' + item)) } }) return components } module.exports = { description: '创建页面', prompts: [ { type: 'list', name: 'path', message: '请选择页面创建目录', choices: getFolder('src/pages') }, { type: 'input', name: 'name', message: '请输入文件名', validate: v => { if (!v || v.trim === '') { return '文件名不能为空' } else { return true } } } ], actions: data => { let relativePath = path.relative('src/pages', data.path) const actions = [ { type: 'add', path: `${data.path}/{{dotCase name}}.vue`, templateFile: 'plop-tpls/page/index.hbs', data: { componentName: `${relativePath} ${data.name}` } } ] return actions } }
2.6、创建文件,选择模板
2.7、选择目录
2.7、输入文件名
2.8、完成
2.9、模板文件创建成功
三、关注我,一起学习,欢迎交流指正。