Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >前端工程化之plop的使用

前端工程化之plop的使用

作者头像
源心锁
发布于 2022-08-12 03:45:23
发布于 2022-08-12 03:45:23
49900
代码可运行
举报
文章被收录于专栏:前端魔法指南前端魔法指南
运行总次数:0
代码可运行

plop是什么?plop是一个轻量级的项目构建工具,api相当简单好用

明确需求

为什么需要plop?理论上讲,plop能做到的东西不算少,但主要也就是模板文件这样。对我来说,用来生成一些模块文件就行

安装plop

使用全局安装,不要局部,局部安装就是毒瘤。 npm install -g plop

在当前项目根目录新建文件plopfile.js

不需要专门新建一个项目,plop是非常轻量级的工具,api实打实简单,我们甚至不太需要接触到cli

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const reducerGenerator = require('./plop-templates/reduce/prompt.js')

module.exports=function (plop) {
    plop.setGenerator('reducer', reducerGenerator);
};

这里的reducer要记住,之后用得上

写好对应reducerGenerator的模板文件

这样的话接下来这个hbs文件就是这样

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
let initialState = {}

const {{name}}Reducer = (state = initialState, action) => {
    switch (action.type) {
        default:
            return state;
    }
}
export default {{name}}Reducer

调用模板并生成文件的代码

在我日常开发的过程中,一般把reducer放在这里:

也就是src/reducers/{{name}}Reducer.js,其中的name对应某个reducer的名称。

那么我们的代码如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
module.exports = {
    description: '生成redux中的reducer模板', //描述这个generate的作用
    prompts: [{
        type: 'input',
        name: 'name',
        message: 'reducer名', // 在命令行中的问题
    }],
    actions: function(data){
        data.name=data.name.replace(data.name[0],data.name[0].toLowerCase());
        const actions =  [{
            type:'add',
            path:'src/reducers/{{name}}Reducer.js',
            templateFile:"plop-templates/reduce/index.hbs",
            data:{
                name:data.name
            }
        }]
        return actions;
    }
};

通过plop,我们可以强制规范,比如说我们的reducer文件名首字母一定是小写。

这样一来,我们的基本目录结构是这样的

调用

我们前边使用全局安装,这里就可以直接plop,还记不记得前边提到让你记住的这个参数reducer?这里要用到 plop reducer 然后安装逻辑弹出了名字询问,输入后我们发现生成完毕


plop可以说是非常好用了;接下来尝试一下husky

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-10-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【Vue工程】009-Plop 代码生成器
Plop 是一个用于生成代码文件的可配置的脚手架工具。它可以帮助开发人员自动创建代码文件、模板和代码片段,从而提高开发效率。
訾博ZiBo
2025/01/06
680
【告别复制粘贴】动态模板生成小技巧
? 这是第 75 篇不掺水的原创,想要了解更多,请戳上方蓝色字体:政采云前端团队 关注我们吧~ 本文首发于政采云前端团队博客:告别复制粘贴:动态模板生成小技巧 https://www.zoo.tea
政采云前端团队
2020/11/05
1.4K0
【告别复制粘贴】动态模板生成小技巧
使用PlopJs让开发变得更高效
Dear,大家好,我是“前端小鑫同学”,😇长期从事前端开发,安卓开发,热衷技术,在编程路上越走越远~ 在现在的前端圈里面,大多数的框架,库都会给你配一个CLI来使用,这样就可以创建一个最小可用的程序出来。还有一些封装的比较完善的前端开源项目,比如一些管理平台时项目就会提供页面级别,组件级别的类似CLI的功能来创建基本的结构模板,因为我们知道在管理平台这种软件中页面的大致结构风格都高度一致,所以这个时候如果通过工具的完成重复的工作是相当合适的,有这么一款工具就最为推荐那就是plopjs。 Plop是一个轻
前端小鑫同学
2022/12/26
3540
使用PlopJs让开发变得更高效
第 012 期 易学易用的模板代码生成神器 - Plop
我们在做新的页面或组件时,会做很多重复的初始化的工作。如创建类似的文件: 组件文件,样式文件等。文件中写类似的初始化代码: 引入样式,定义组件,导出组件等。
前端GoGoGo
2021/04/13
9860
plop js 模板工具
## plop 模板工具 概述 plop 模板生成cli 安装 // 全局安装 npm i -g plop // 本地安装 npm i --save-dev plop 配置文件 // 更目录创建文件 plopfile.js plop将已该文件作为执行入口 // 导出执行函数 module.exports = function(plop){ plop.getGenerator("模板名称", { description: "操作描述", prompts:
copy_left
2019/12/12
5.4K0
React技术栈项目结构探究
整理学习react技术栈相关知识,在写了一个电商AppDemo后,开始思考起该如何高效的组织react项目的项目结构。
Nealyang
2019/09/29
9080
React技术栈项目结构探究
使用Redux和React-redux在React中进行状态管理
首先,我们需要使用create-react-app命令行工具安装新的react应用。
前端修罗场
2022/07/29
3K0
使用Redux和React-redux在React中进行状态管理
从 0 搭建 Vite 3 + Vue 3 前端工程化项目
Vue 3 正式版已经发布有一段时间了,随着 Vite 脚手架注定成为下一代前端工具链,许多用户都想基于 Vite 来构建 Vue 项目,如果想基于 Vite 构建 Vue 3 项目,社区模板完全满足您的需求,如果想构建 Vite 3 + Vue 3 + JavaScript 项目,那社区模板不太能满足您的需求,因为社区模板提供 Vue 3 项目几乎是基于 Vite 2 + TypeScript 构建,对于不熟悉 TypeScript 语言的用户不是很友好,因此接下来从 0 开始手把手带大家搭建一套规范的 Vite 3 + Vue 3 + JavaScript 前端工程化项目环境。
前端老道
2023/02/27
3.5K0
从 0 搭建 Vite 3 + Vue 3 前端工程化项目
【React】211- 2019 React Redux 完全指南
https://juejin.im/post/5cac8ccd6fb9a068530111c7
pingan8787
2019/07/23
4.3K0
【React】211- 2019 React Redux 完全指南
react+redux+webpack教程2
先弄个什么例子呢?如果是现代的MVVM框架,可能会用双向绑定来吸引你。那react有双向绑定吗? 没有。 也算是有吧,有插件。不过双向绑定跟react不是一个路子的。react强调的是单向数据流。 当然,即便是单向数据流也总要有个数据的来源,如果数据来源于页面自身上的用户输入,那效果也就等同于双向绑定了。 下面就展示一下如何达到这个效果。我们来设计一个登录的场景,用户输入用户名后,会在问候语的位置展示用户名,像下这样: ---- 早上好,Mark 用户名: 密 码: 登 录 ---- 预警一下先,我要用
前朝楚水
2018/04/03
1.3K0
Redux系列x:源码分析
写在前面 redux的源码很简洁,除了applyMiddleware比较绕难以理解外,大部分还是 这里假设读者对redux有一定了解,就不科普redux的概念和API啥的啦,这部分建议直接看官方文档。
IMWeb前端团队
2017/12/29
1.3K0
react脚手架改造(react/react-router/redux/eslint/karam/immutable/es6/webpack/Redux DevTools)
公司突然组织需要重新搭建一个基于node的论坛系统,前端采用react,上网找了一些脚手架,或多或少不能满足自己的需求,最终在基于YeoMan的react脚手架generator-react-webpack上搭建改造,这里作为记录。 代码在这里:github 另外推荐地址:react-starter-kit 简单文件夹结构 ├── README.md # 项目README文件 ├── conf # 配置文件夹
糊糊糊糊糊了
2018/05/09
1.7K0
react脚手架改造(react/react-router/redux/eslint/karam/immutable/es6/webpack/Redux DevTools)
自制前端脚手架
新建项目是很繁琐的一项工作, 要考虑项目目录结构,基础库的配置等等。 前段时间因为需求使用了几款前端脚手架,包括yeoman、imweb-cli, 他们功能丰富 ,简单高效,其核心功能是根据用户选择的模板快速的新建一个完整的项目,也可以在其中做一些自定义的配置。 学会了使用架手架,便想了解脚手架到底是怎么工作的, 阅读了相关脚手架的源码后,对原理有了一点心得。
IMWeb前端团队
2019/12/03
5890
自制前端脚手架
通俗易懂的Redux了解下
Redux让我脑仁疼,感觉搞不定他。因为Redux对我而言太抽象了,所以我用通俗易懂地方法去思考Redux,感觉能够理解Redux一些了。
小美娜娜
2019/04/04
5320
【总结】超全面的前端工程化配置指南!
上图标红就是相关的工程化配置,有 Linter、Tests,Github Actions 等,覆盖开发、测试、发布的整个流程。
前端老道
2023/09/15
7680
【总结】超全面的前端工程化配置指南!
React服务端渲染与同构实践
前两年服务端渲染和同构的概念火遍了整个前端界,几乎所有关于前端的分享会议都有提到。在这年头,无论你选择什么技术栈,不会做个服务端渲染可能真的快混不下去了!最近刚好实现了个基于 React&Redux 的同构直出应用,赶紧写个文章总结总结压压惊。
IMWeb前端团队
2019/12/04
1.2K0
Redux(五):源码分析之combineReducers
定义getUndefinedStateErrorMessage()函数,用以返回错误信息。
Ashen
2020/06/01
9980
react+redux+webpack教程3
现代web页面里到处都是ajax,所以处理好异步的代码非常重要。 这次我重新选了个最适合展示异步处理的应用场景——搜索新闻列表。由于有现成的接口,我们就不用自己搭服务了。 我在网上随便搜到了一个新闻服务接口,支持jsonp,就用它吧。 一开始,咱们仍然按照action->reducer->components的顺序把基本的代码写出来。先想好要什么功能, 我设想的就是有一个输入框,旁边一个搜索按钮,输入关键字后一点按钮相关的新闻列表就展示出来了。 首先是action,现在能想到的动作就是把新闻列表放到仓库里,
前朝楚水
2018/04/03
1K0
几个关于js数组方法reduce的经典片段
以下是个人在工作中收藏总结的一些关于javascript数组方法reduce的相关代码片段,后续遇到其他使用这个函数的场景,将会陆续添加,这里作为备忘。 javascript数组那么多方法,为什么我要单挑reduce方法,一个原因是我对这个方法掌握不够,不能够用到随心所欲。另一个方面,我也感觉到了这个方法的庞大魅力,在许多的场景中发挥着神奇的作用。 理解reduce函数 reduce() 方法接收一个函数作为累加器(accumulator),数组中的每个值(从左到右)开始缩减,最终为一个值。 arr.
糊糊糊糊糊了
2018/05/09
2.2K0
前端工程化之 commitlint + husky 实现 git 提交规范化
对于编程语言进行「语法、书写」校验,能有效「归并」不同开发者的「不同风格」,还能检验出一些语法错误。
小鑫
2022/05/11
3.6K0
相关推荐
【Vue工程】009-Plop 代码生成器
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验