当前位置: 首页 > news >正文

zzy-project-cli,提供多个框架的脚手架

npm地址

install

npm install zzy-project-cli -g

做什么?

  • 将多个可选的框架提供给使用者选择,选中后自动下载对应模板,快捷使用。

使用

step1

zzy-cli create [项目名称]

step2

获取模板之后选取任一进行下载

image.png

下载完成之后即可使用

模板介绍

  • 模板组是由新旧多个不同的框架集合成的,vite类为最新开发产出的框架,webpack为去年及更早开发产出。
  • vite由vue,react分别对应PC管理端,Mobile业务页面,总计四个模板可以使用,且全部为ts开发。
  • webpack模板三种,分别是vue-self-admin,简单二次修改后的vue-element-admin框架,vue版本为2x,react_mobile为js,一代产出的框架,css为less,v2是ts开发,css为styled-components。
  • vite的模板全部都是精装,react系列有骨架屏,错误报告,等等,vue有权限验证,icon组件等预装内容,webpack相对比较简陋一些。
  • webpack的框架作为上一代内容不再维护,vite长期维护。
  • 以下为各个框架的readme.md 内容

vite_react_management

技术栈

  • Vite@4
  • React
  • react-router@6
  • antd-mobile@5
  • redux&immutable
  • styled-components
  • eslint&prettier

  • 默认具备骨架屏加载(src/componrnts/LoadSkeleton)、错误边界(只限于在core之内,之外额外在baseRoute中设置)(src/componrnts/ErrorBoundary)、404(src/views/404)
  • 全局已配置的规则,默认开发软件为VSCode(已设置配置文件)
  • store内的复杂数据一律保证immutable化,配合immutable处理
  • 基本全局配置在config中的env分别设置
  • mobile下core可以什么都不做,只是一个包裹,具体是在其下面做处理
  • 默认配置src路径别名为 @

rules

  • style组件默认后缀为 Sty example: home组件的顶级style组件就是
<ContainerSty><ContainerSty/>
  • 请求文件统一从api中以views相同的结构进行创建,使用是以:
import * as api from '@/api/home'api.testApi({// ...datas
}).then(console.log)
  • 项目内默认以驼峰形式开发
  • 普通页面的路由存放至 src/router/asyncRoutes
  • 使用redux存放内容时,规则如下:
const Test = (props) => {// 对于不同入口进行区分const { testObj } = propsconst { setTestObjDispatch } = propsconst { ...otherProps } = props
}const mapStateToProps = (state) => ({testObj: state.getIn(['core', 'testObj']).toJs()
})const mapDispatchToProps = (dispatch) => ({// dispatch方法都要添加后缀进行分辨setTestObjDispatch(key) {dispatch(setTestObjDis(key))}
})// eslint
const RTest = connect(mapStateToProps, mapDispatchToProps)(Test)
export RTest
  • 全局样式在src/style.ts下,公共样式在src/utils/global-style.ts下

vite_react_mobile

技术栈

  • Vite@4
  • React
  • react-router@6
  • antd-mobile@5
  • redux&immutable
  • styled-components
  • eslint&prettier

  • 默认具备骨架屏加载(src/componrnts/LoadSkeleton)、错误边界(只限于在core之内,之外额外在baseRoute中设置)(src/componrnts/ErrorBoundary)、404(src/views/404)
  • 全局已配置的规则,默认开发软件为VSCode(已设置配置文件)
  • store内的复杂数据一律保证immutable化,配合immutable处理
  • 基本全局配置在config中的env分别设置
  • mobile下core可以什么都不做,只是一个包裹,具体是在其下面做处理
  • 默认配置src路径别名为 @
  • 默认配置对应的UI框架 icons 插件

rules

  • style组件默认后缀为 Sty example: home组件的顶级style组件就是
<ContainerSty><ContainerSty/>
  • 请求文件统一从api中以views相同的结构进行创建,使用是以:
import * as api from '@/api/home'api.testApi({// ...datas
}).then(console.log)
  • 项目内默认以驼峰形式开发
  • 普通页面的路由存放至 src/router/asyncRoutes
  • 使用redux存放内容时,规则如下:
const Test = (props) => {// 对于不同入口进行区分const { testObj } = propsconst { setTestObjDispatch } = propsconst { ...otherProps } = props
}const mapStateToProps = (state) => ({testObj: state.getIn(['core', 'testObj']).toJs()
})const mapDispatchToProps = (dispatch) => ({// dispatch方法都要添加后缀进行分辨setTestObjDispatch(key) {dispatch(setTestObjDis(key))}
})// eslint
const RTest = connect(mapStateToProps, mapDispatchToProps)(Test)
export RTest
  • 全局样式在src/style.ts下,公共样式在src/utils/global-style.ts下

vite_vue_management

技术栈

  • Vite@4
  • Vue3
  • vue-router@4
  • element-plus@2
  • pinia
  • scss
  • eslint&prettier

  • 默认具备KeepAlive、404(src/views/errorPage/404、权限指令(后期根据实际情况更改))、SideBar、Breadcrumb、Tags
  • 路由守卫已经预配置,和登录互相挂钩
  • PC端默认开启路由权限校验,在修改config/.env.development&.production 中的 VITE_OPEN_PERMISSION 进行修改
  • 全局已配置的规则,默认开发软件为VSCode(已设置配置文件)
  • 基本全局配置在config中的env分别设置
  • 默认配置src路径别名为 @
  • element-plus组件设置自动导入,直接使用即可,无需引入
  • 默认配置对应的UI框架 icons 插件
  • svg-icon组件内可直接使用 src/assets/icons 下的svg

rules

  • 每个页面顶层默认id为 [Page]_Page_Container
<div id="Login_Page_Container">
</div>
  • 每个组件顶层默认class为 [Component]_Component_Container
<div id="Table_Component_Container">
</div>
  • 请求文件统一从api中以views相同的结构进行创建,使用是以:
import * as api from '@/api/home'api.testApi({// ...datas
}).then(console.log)
  • 项目内默认以驼峰形式开发
  • 普通页面的路由存放至 src/router/asyncRoutes
  • 全局样式在src/style.scss下
  • svg图标存放至src/assets/icons中配合 svg-icon组件使用
  • 存储一般通过src/utils/storage.ts内提供的方法调用

vite_vue_mobile

技术栈

  • Vite@4
  • Vue3
  • vue-router@4
  • vant@4
  • pinia
  • scss
  • eslint&prettier

  • 默认具备KeepAlive、404(src/views/errorPage/404、权限指令(后期还需要根据实际情况更改))、全局组件 TitleBar/svg-icon
  • 路由守卫已经预配置,和登录互相挂钩
  • 移动端默认不开启路由权限校验,在修改config/.env.development&.production 中的 VITE_OPEN_PERMISSION 进行修改
  • 全局已配置的规则,默认开发软件为VSCode(已设置配置文件)
  • 基本全局配置在config中的env分别设置
  • 默认配置src路径别名为 @
  • vant组件设置自动导入,直接使用即可,无需引入
  • 默认配置对应的UI框架 icons 插件
  • svg-icon组件内可直接使用 src/assets/icons 下的svg

rules

  • 每个页面顶层默认id为 [Page]_Page_Container
<div id="Login_Page_Container">
</div>
  • 每个组件顶层默认class为 [Component]_Component_Container
<div id="Table_Component_Container">
</div>
  • 请求文件统一从api中以views相同的结构进行创建,使用是以:
import * as api from '@/api/home'api.testApi({// ...datas
}).then(console.log)
  • 项目内默认以驼峰形式开发
  • 普通页面的路由存放至 src/router/asyncRoutes
  • 全局样式在src/style.scss下
  • svg图标存放至src/assets/icons中配合 svg-icon组件使用
  • 存储一般通过src/utils/storage.ts内提供的方法调用

webpack5_V2

基于react webpack为主的移动端项目基础框架。

本项目设置了 DllPlugin(react、react-dom),在public中已经打包了一份,如果更改webpack的Dllplugin配置,需先 yarn dll 重新进行编译,而后再 yarn build

技术栈:react,react-router/-dom,webpack5,react-redux,immutable,axios,styled-components,antd

亮点

  • 极速打包
  • 尽我所能的缩小首屏加载时常(prod)
  • 全自动的动态链接库
  • 不同环境不同配置的webpack
  • 更快的配置路由
  • 多环境多域名处理
  • 在保证包大小的情况下进行浏览器兼容处理
  • n个webpack小优化😎
  • 集成antd,并设置按需加载
  • 集成zzy-javascript-devtools(手动狗头~)
  • 控制台更干净,友善的提示
  • 运行,打包改用 node API 写法执行 更高的操作上限
  • eslint校验新增

webpack5-react-mobile以及vue-self-admin 不做阐述,前者和上面的v2基本一致,只是没有ts和css区别,后者只是摘除一些多余内容。

webpack5-react-mobile github地址

vue-self-admin github

相关文章:

zzy-project-cli,提供多个框架的脚手架

npm地址 install npm install zzy-project-cli -g做什么&#xff1f; 将多个可选的框架提供给使用者选择&#xff0c;选中后自动下载对应模板&#xff0c;快捷使用。 使用 step1 zzy-cli create [项目名称]step2 获取模板之后选取任一进行下载 下载完成之后即可使用 模…...

C++类和对象中(构造函数,析构函数,拷贝构造函数)详解

C类和对象中[构造函数,析构函数,拷贝构造函数]详解 一.前言1.类的6个默认成员函数 二.构造函数1.构造函数的引出2.无参构造函数3.缺省参数在构造函数中的应用4.编译器实现的默认构造函数5.广义的默认构造函数6.默认构造函数的形成规则 三.析构函数1.析构函数的语法2.编译器实现…...

智能矩阵系统解决的问题?

智能矩阵系统可以解决的问题多种多样&#xff0c;它主要通过人工智能技术应用于矩阵系统&#xff0c;解决一些传统方法难以处理的问题。 以下是一些常见的应用场景&#xff1a; 1. 数据管理&#xff1a;智能矩阵系统可以有效地管理大量的数据&#xff0c;包括数据的存储、检索…...

计算机网络——计算机网络体系结构(3/4)-计算机网络体系结构分层思想举例

目录 发送请求报文 应用层构建HTTP请求报文 运输层添加TCP首部 网络层添加IP首部 数据链路层形成帧 物理层转化为比特流 路由器处理 服务器处理 发回响应报文 计算机网络体系结构分层思想举例 假设网络拓扑如下所示&#xff0c;主机属于网络N1&#xff0c;Web服务器属…...

计算机网络,网络(OSI)七层模型,三次握手四次挥手,get与post请求区别,网络IO(BIO\NIO\AIO),TCP与UDP区别

1.OSI模型&#xff1f; 开放式系统互联通信参考模型(Open System Interconnection Reference Model) OSI网络七层模型&#xff1a;应用层、表示层、会话层、传输层、网络层、数据链路层、物理层 TCP/IP协议群简化了OSI七层模型&#xff1a;应用层、传输层、网络层、数据链路…...

【网络爬虫 | Python】数字货币ok链上bitcoin大额交易实时爬取,存入 mysql 数据库

文章目录 一、网站分析二、js 逆向获取 X-Apikey三、python 调用 js 获取 X-Apikey四、python 爬虫部分五、mysql 数据库、日志、配置文件、目录结构六、结尾 一、网站分析 oklink&#xff1a;https://www.oklink.com/ btc 大额交易&#xff1a;https://www.oklink.com/btc/tx-…...

【Servlet】实现Servlet程序

文章目录 1. 最朴素方式1. 创建项目2. 引入依赖3. 创建目录4. 编写代码5. 打包程序6. 部署程序7. 验证程序 2. 更方便方式1. 安装Smart TomCat插件2. 启动 1. 最朴素方式 1. 创建项目 选择Maven项目 2. 引入依赖 Maven项目创建完后会生成一个pom.xml文件&#xff0c;我们可…...

binlog 和 redolog 有什么区别

binlog 和 redolog 都是 Mysql 里面用来记录数据库数据变更操作的日志. binlog 其中 binlog 主要用来做数据备份、数据恢复和数据同步&#xff0c;在Mysql 的主从数据同步的场景中&#xff0c;master 节点的数据变更&#xff0c;会写入到 binlog 中&#xff0c;然后再把 binl…...

Git 修改已提交的用户名和邮箱

Git 修改已提交的用户名和邮箱 修改上一次提交的邮箱和用户名 git commit --amend --author Name<email>批量修改多次提交的邮箱和用户名 新建一个 .sh 脚本在 git 根目录下.sh脚本内容如下 git filter-branch --env-filter an"$GIT_AUTHOR_NAME" am"…...

小游戏外包开发流程及费用

小游戏的开发流程和费用会因项目的规模、复杂性和所选技术平台而有所不同。以下是一般的小游戏开发流程和可能的费用因素&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流合作。 开发流程&#xff1a; 概念和…...

Homeassistant docker配置

Homeassistant docker配置 【说明】本系列为自用教程&#xff0c;记录以便下次使用 【背景】一台J1900 4G64G的小主机&#xff0c;安装了OP系统&#xff0c;里面自带了Docker。为实现Homeassistant&#xff08;简称HA&#xff09;控制智能家居设备&#xff0c;进行如下配置。 【…...

Go 深入解析非类型安全指针

一、引言 非类型安全指针&#xff08;也称为“裸指针”或“原始指针”&#xff09;在编程领域中一直是一个具有争议和挑战性的主题。它们赋予程序员直接操作计算机内存的能力&#xff0c;为高级性能优化和底层系统交互提供了可能。然而&#xff0c;这种能力往往伴随着高风险&a…...

vue动态绑定class

Vue.js 允许您使用 v-bind 指令或简写的 : 来动态绑定 class 属性。这允许您基于某些条件为元素添加或删除类名&#xff0c;从而实现动态样式控制。以下是一些示例&#xff1a; 动态添加单个类名&#xff1a; <template> <div> <p :class"{ active: isActi…...

UDP网络通信反复发收

package UDP2;import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; import java.util.Scanner;/* * 完成UDP 通信快速入门 实现发1收1*/ public class Client {public static void main(String[] args) throws Exception{// …...

ip报头和ip报文切片组装问题

在tcp层将数据打包封装向下传递后&#xff0c;网络层将其整个看为一个数据&#xff0c;然后对其数据加网络报头操作&#xff0c;在网络层最具有代表的协议就是ip协议。在这里我们探究ipv4的报头。 ip报头 4位版本&#xff1a;指定ip的版本号&#xff0c;对于ipv4来说就是4。 …...

linux之应用编程回顾总结

gcc编译过程 一个c/c文件要经过预处理、编译、汇编和链接4个阶段&#xff0c;才能变成可执行文件 1.预处理 C/C源文件中&#xff0c;以“#”开头的命令被称为预处理命令&#xff0c;如包含命令“#include”、宏定义命令“#define”、条件编译命令“#if”、“#ifdef”等。预处理…...

nginx配置负载均衡--实战项目(适用于轮询、加权轮询、ip_hash)

&#x1f468;‍&#x1f393;博主简介 &#x1f3c5;云计算领域优质创作者   &#x1f3c5;华为云开发者社区专家博主   &#x1f3c5;阿里云开发者社区专家博主 &#x1f48a;交流社区&#xff1a;运维交流社区 欢迎大家的加入&#xff01; &#x1f40b; 希望大家多多支…...

Mac GPU MPS常用方法

Requirements Mac computers with Apple silicon or AMD GPUs macOS 12.3 or later Python 3.7 or later Xcode command-line tools: xcode-select --install 判断是否可用 import torch if torch.backends.mps.is_available():mps_device torch.device("mps")x …...

【数据结构】线性表(四)双向链表的各种操作(插入、删除、查找、修改、遍历打印)

目录 线性表的定义及其基本操作&#xff08;顺序表插入、删除、查找、修改&#xff09; 四、线性表的链接存储结构 1. 单链表 2. 循环链表 3. 双向链表 a. 双向链表节点结构 b. 创建一个新的节点 c. 在链表末尾插入节点 d. 在指定位置插入节点 e. 删除指定位置的节点…...

数据结构和算法——图

图 有向图 带权图 邻接矩阵 邻接表相较于邻接矩阵&#xff0c;减少了存储空间&#xff1b; 邻接表 参考视频&#xff1a;【尚硅谷】数据结构与算法&#xff08;Java数据结构与算法&#xff09;_哔哩哔哩_bilibili...

手游刚开服就被攻击怎么办?如何防御DDoS?

开服初期是手游最脆弱的阶段&#xff0c;极易成为DDoS攻击的目标。一旦遭遇攻击&#xff0c;可能导致服务器瘫痪、玩家流失&#xff0c;甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案&#xff0c;帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...

日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻

在如今就业市场竞争日益激烈的背景下&#xff0c;越来越多的求职者将目光投向了日本及中日双语岗位。但是&#xff0c;一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧&#xff1f;面对生疏的日语交流环境&#xff0c;即便提前恶补了…...

7.4.分块查找

一.分块查找的算法思想&#xff1a; 1.实例&#xff1a; 以上述图片的顺序表为例&#xff0c; 该顺序表的数据元素从整体来看是乱序的&#xff0c;但如果把这些数据元素分成一块一块的小区间&#xff0c; 第一个区间[0,1]索引上的数据元素都是小于等于10的&#xff0c; 第二…...

(十)学生端搭建

本次旨在将之前的已完成的部分功能进行拼装到学生端&#xff0c;同时完善学生端的构建。本次工作主要包括&#xff1a; 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...

shell脚本--常见案例

1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件&#xff1a; 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...

Day131 | 灵神 | 回溯算法 | 子集型 子集

Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a; 笔者写过很多次这道题了&#xff0c;不想写题解了&#xff0c;大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...

解锁数据库简洁之道:FastAPI与SQLModel实战指南

在构建现代Web应用程序时&#xff0c;与数据库的交互无疑是核心环节。虽然传统的数据库操作方式&#xff08;如直接编写SQL语句与psycopg2交互&#xff09;赋予了我们精细的控制权&#xff0c;但在面对日益复杂的业务逻辑和快速迭代的需求时&#xff0c;这种方式的开发效率和可…...

汽车生产虚拟实训中的技能提升与生产优化​

在制造业蓬勃发展的大背景下&#xff0c;虚拟教学实训宛如一颗璀璨的新星&#xff0c;正发挥着不可或缺且日益凸显的关键作用&#xff0c;源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例&#xff0c;汽车生产线上各类…...

定时器任务——若依源码分析

分析util包下面的工具类schedule utils&#xff1a; ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类&#xff0c;封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz&#xff0c;先构建任务的 JobD…...

学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1

每日一言 生活的美好&#xff0c;总是藏在那些你咬牙坚持的日子里。 硬件&#xff1a;OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写&#xff0c;"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...