大家好,欢迎来到IT知识分享网。
问题:
- plop是什么?
- plop怎么使用?
- 用了plop有什么好处?
正文:
一、plop是什么?
官方解释:plop是一个“微生成器框架”,简单点说就是一个小工具,提供了一种简单的方式,以这种简单的方式生成代码或任何其他类型的文件模板。
二、plop怎么使用?(这里以在vue项目中举例说明)
安装plop
yarn add plop --dev --registry=https://registry.npm.taobao.org
项目根目录下新建plop模板文件夹plop-templates以及plopfile.js命令行新建提示脚本文件,然后新建page文件夹以及component文件夹用于存放page模板文件以及components模板文件。
以编写page模板文件为例说明,在page文件夹下新建index.hbs模板文件,以及prompt.js提示脚本文件(page页面的提示文件)
index.hbs代码
{{#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="less" scoped></style> {{/if}}
prompt.js代码
module.exports = { description: 'generate a page', prompts: [ // 提示类型首选项 { type: 'input', // 类型,常见 input、checkbox、list、confirm name: 'name', message: 'page 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 'page require at least a <script> or <template> tag.' } return true } } ], actions: data => { const name = '{{name}}' const actions = [ { type: 'add', // 操作类型,新增文件 path: `src/pages/${name}/index.vue`, // 新增文件路径、文件名以及文件类型 templateFile: 'plop-templates/page/index.hbs', // 模板文件 data: { name: name, template: data.blocks.includes('template'), // 是否内置 template script: data.blocks.includes('script'), style: data.blocks.includes('style') } } ] return actions } }
将编写好的page页面的规则导入plopfile.js
const pageGenerator = require('./plop-templates/page/prompt') module.exports = function (plop) { plop.setGenerator('page', pageGenerator) }
package.json添加新增文件命令
"scripts": { "new": "plop" },
新增页面文件命令
yarn new
三、用了plop有什么好处?
这个问题其实已经不言而喻了,使用plop的目的就是解放双手提高工作效率。官方解释:“正确的方法”变成“最简单的方法”来创建新文件。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/81024.html