开箱即用 yyg-cli(脚手架工具):快速创建 vue3 组件库和vue3 全家桶项目
1 yyg-cli 是什么
yyg-cli 是优雅哥开发的快速创建 vue3 项目的脚手架。在 npm 上发布了两个月,11月1日进行了大升级,发布 1.1.0 版本:支持创建 vue3 全家桶项目和 vue3 组件库项目。具体如下:
vue3 全家桶项目
使用 yyg-cli 创建的 vue3 全家桶项目,底层基于优雅哥编写的开源项目 vue3-vite-archetype,默认整合如下库:
- vite3、vue3
- typescript、tsx
- vue router
- pinia
- scss
- element plus
- nprogress
- svg
此外还支持:
- 多环境的支持
- 封装 Element Plus 图标组件并全局引入,支持 Element UI 中的图标的使用方式
- 使用 pinia-plugin-persistedstate 实现 pinia 状态持久化,浏览器刷新时数据不丢失
- 使用 eslint-standard 规范进行代码检查
- 使用 git hooks 规范代码提交
vue3 组件库项目
使用 yyg-cli 创建的 vue3 组件库项目,底层基于优雅哥编写的开源项目 vue3-component-library-archetype,该项目在上一篇文章中已经叙述过。简单来说,支持如下功能:
- pnpm + monorepo
- 组件库的开发环境和打包构建,打包时自动提取类型;
- 组件库文档的开发环境和打包构建,支持一份 demo 的代码实现 demo 展示和代码展示;
- example 的开发环境和打包构建;
- 提供 cli,通过 script 一个命令自动创建新组件并自动完成相关配置。
- 本地启动私服、测试本地发布组件库
2 为什么使用 yyg-cli
使用 yyg-cli 就一个原因:省时省力省脑。
如果使用 vite 创建 vue3 全家桶项目,需要手动整合 tsx、路由、状态管理等,是一个重复体力活,没有什么价值。通过 yyg-cli 创建 vue3 项目,极大简化了各种库的整合工作。关于底层创建所使用的 vue3-vite-archetype 是怎样从创建项目一步步到完成的,优雅哥在之前的文章中已详细叙述,大家如果不愿意使用 yyg-cli,可以根据之前的文章一步步操作。
文章:
基于 vite 创建 vue3 全家桶项目
vue3 vite2 封装 SVG 图标组件-基于 vite 创建 vue3 全家桶项目(续篇)
Vue3 Vite3 多环境配置 - 基于 vite 创建 vue3 全家桶项目(续篇)
Vue3 Vite3 pinia 基本使用、持久化、路由守卫中的使用 - 基于 vite 创建 vue3 全家桶项目(续篇)
分享一个实用的 vite + vue3 组件库脚手架工具,提升开发效率
如果使用 vite 创建 vue3 组件库项目,则是各种繁琐的依赖、配置,底层脚手架 vue3-component-library-archetype 优雅哥前前后后折腾了七八个晚上才弄完,后面也会分享文章和大家从创建项目开始直到实现整个组件库脚手架。那为什么不直接使用 vue3-component-library-archetype 来二次开发呢?如果直接使用该项目,需要修改组件库的名称等信息,一不小心就修改遗漏了,而且修改的地方很多,大概有20多个文件。 使用 yyg-cli, 在创建项目的过程中就会根据输入的项目名、作者等信息直接修改相关地方,实现开箱即用。
3 怎样使用 yyg-cli
3.1 安装 pnpm
monorepo 是一个主流趋势,很多开源项目都使用 monorepo 方式。Lerna 是一个优秀的支持 monorepo 的库,但已经停止维护了一段时间,大多企业使用 pnpm,pnpm 不仅是一个包管理工具,还支持 monorepo,此外还有很多优点,如速度快、节省磁盘空间等。所以优雅哥也从 yarn 切换到了 pnpm。
全局安装 pnpm
npm install -g pnpm
3.2 安装 yyg-cli
使用 pnpm 或 yarn 全局安装 yyg-cli:
pnpm install yyg-cli -g
或
yarn global add yyg-cli
安装完成后查看版本号:
yyg --version
当前最新版本为 1.1.0
3.3 创建 vue3 全家桶项目
在控制台输入 yyg create 项目名 ,如:
yyg create ops-admin
回车后,控制台提示选择项目类型,选择 vue3 全家桶项目,回车
依次输入项目描述、版本号、作者、本地开发运行的端口号,等待项目创建
项目创建成功后,会提示是否立刻安装依赖,如果需要直接安装依赖,回车即可,选择包管理工具,然后便开始依赖安装了。出现如下提示,则依赖安装成功,可以用 IDE 打开项目,运行项目 pnpm run dev:dev。
自动创建生成的 vue3 全家桶结构比较简单,这里就不描述了。
3.4 创建 vue3 组件库项目
在控制台输入 yyg create 组件库名 ,如:
yyg create ops-ui
回车后,控制台提示选择项目类型,选择 vue3 组件库项目,回车,依次填写组件库中组件名的前缀(如 element plus 的组件前缀为 el,ant design 的组件前缀为 a,这里输入 yyg,则代表所有组件前缀都是 yyg)、组件库中文描述、作者,然后等待组件库创建。如下图:
组件库创建成功后,依然会提示是否安装依赖,回车就直接使用 pnpm 进行依赖的安装(由于组件库脚手架使用 pnpm monorepo,所以这里不再提示选择包管理工具,这也是本节开头就全局安装 pnpm 的原因)。
组件库创建成功后,用 IDE 打开,重点的目录结构和文件说明如下:
1)example 模块
普通的 vue3 项目,可在该目录中开发业务功能,在开发业务功能过程中,如果有新的公共组件,可方便的在组件库中开发。组件库稳定后,便可以将 example 抽取为独立的工程。(业务驱动组件库的开发)
2)packages 目录
存放组件库,里面包括多个模块。项目刚创建成功时,里面有三个目录:
- scss 目录
该目录存放样式相关的文件,组件库的样式参考 ITCSS + ACSS 架构模式,在该模式基础上进行了简化。base 目录存放一些重置样式和变量;tools 目录对应一些样式工具函数,如 BEM 等;components 目录存放组件的样式,每个组件都对应该目录下的一个 scss 文件。使用 cli 自动创建组件时,会在该目录下生成对应组件的 scss 文件。acss 存放原子 CSS。
- foo 模块
该目录存放一个示例组件。后续通过 cli 自动创建新组件时,就会自动生成和 foo 相同的目录文件结构。foo/index.ts 是组件的入口文件;foo/src/ 目录存放组件的源码和 props 等类型定义。
- ops-ui 模块
该模块是自动生成的,与创建项目时输入的 组件库名/项目名 相同,为组件库的聚合工程,在里面引入了所有的组件库,同时也是打包组件库时的入口。使用 cli 创建新组组件时,会自动在该模块中引入新创建的组件。
3)docs 模块
组件库的文档,使用 vitepress 1.0 开发。.vitepress 目录存放 vitepress 的常规配置及主题配置,在 .vitepress/theme/index.ts 中自动引入了组件库 packages/ops-ui。 index.md 是首页,大家可以修改 index.md 中的配置,按照自己的具体信息进行对应修改,如组件库的名称、LOGO、功能特点等。
components 目录存放每个组件的描述页,并且可以在里面展示 demo 及 demo 源码。demos 目录存放组件描述页中引入的 demo。在使用 cli 创建新组件时,会自动在 demos 目录中生成组件的 demo 代码,同时在 components 目录中生成对应组件的 md 描述文档页,并在 md 中引入生成的 demo。
4)cli 模块
该模块是一个辅助工具,帮助我们快速创建一个组件模块,并完成 packages/组件库模块 、docs 等的配置。
上面所有模块的 scripts 都聚合在根目录的 package.json 中,在使用过程中从根目录操作即可。关于里面的 scripts 以及开发、打包、发布等操作,在上一篇文章 《vue3-component-library-archetype》已经详细叙述,这里便不再赘述。
有任何 issue,欢迎留言讨论。
后面的文章进入vue3 企业级优雅实战,从创建项目、封装组件库脚手架开始、cli 开始,到 JSON Schema 组件封装、权限管理系统开发,最后再进行微前端升级。
开箱即用 yyg-cli(脚手架工具):快速创建 vue3 组件库和vue3 全家桶项目的更多相关文章
- Vue-cli3脚手架工具快速创建一个项目
1.首先全局安装一下vue-cli3 npm install -g @vue/cli 或 yarn global add @vue/cli vue -V查看版本(这里注意V是大写哦) 2.vue cr ...
- httprunner_安装及利用脚手架工具快速创建项目
一.安装httprunner 笔者自己安装的版本为2.5.7 安装命令: pip install httprunner==2.5.7 二.快速创建目录 hrun --startproject dem ...
- vue.js---利用vue cli脚手架工具+webpack创建项目遇到的坑
1.Eslint js代码规范报错 WARNING Compiled with 2 warnings 10:43:26 ✘ http://eslint.org/docs/rules/quotes St ...
- 一个实用的 vite + vue3 组件库脚手架工具,提升开发效率
无论是 vue2 全家桶还是 vue3 + vite + TypeScript,组件库的使用几乎大家都会,但自己开发一个独立组件库就不是每个人都掌握的,因为搭建组件库的基础开发环境,就会让很多同学望而 ...
- 如何快速构建React组件库
前言 俗话说:"麻雀虽小,五脏俱全",搭建一个组件库,知之非难,行之不易,涉及到的技术方方面面,犹如海面风平浪静,实则暗礁险滩,处处惊险- 目前团队内已经有较为成熟的 Vue 技术 ...
- 用 nodejs 写一个命令行工具 :创建 react 组件的命令行工具
用 nodejs 写一个命令行工具 :创建 react 组件的命令行工具 前言 上周,同事抱怨说 react 怎么不能像 angular 那样,使用命令行工具来生成一个组件.对呀,平时工作时,想要创建 ...
- vue- Vue-Cli脚手架工具安装 -创建项目-页面开发流程-组件生命周期- -03
目录 Vue-Cli 项目环境搭建 与 python 基础环境对比 环境搭建 创建启动 vue 项目 命令创建项目(步骤小多) 启动 vue 项目(命令行方式) 启动 vue 项目(pycharm 方 ...
- 从0搭建vue3组件库: 如何完整搭建一个前端脚手架?
相信大家在前端开发中都使用过很多前端脚手架,如vue-cli,create-vite,create-vue等:本篇文章将会为大家详细介绍这些前端脚手架是如何实现的,并且从零实现一个create-kit ...
- 使用aliyun cli工具快速创建云主机
参考文档: https://help.aliyun.com/document_detail/25484.html?spm=a2c4g.11186623.3.2.b57vQp 步骤 创建AccessID ...
随机推荐
- Tomcat 10无法使用javax包
可以导入新的 jakarta包 <dependencies><!--servlet依赖--> <dependency> <groupId>jakarta ...
- C# Parallel类For循环与普通For循环耗时性能比较
1 static void Main(string[] args) 2 { 3 var dt = DateTime.Now; 4 var rand = new Random(DateTime.Now. ...
- ProxySQL(1):简介和安装
文章转载自:https://www.cnblogs.com/f-ck-need-u/p/9278818.html ProxySQL有两个版本:官方版和percona版,percona版是在官方版的基础 ...
- Kibana可视化数据(Visualize)详解
可视化 (Visualize) 功能可以为您的 Elasticsearch 数据创建可视化控件.然后,您就可以创建仪表板将这些可视化控件整合到一起展示. Kibana 可视化控件基于 Elastics ...
- Kubernetes(k8s)为容器设置启动时要执行的命令和参数
创建 Pod 时设置命令及参数 创建 Pod 时,可以为其下的容器设置启动时要执行的命令及其参数.如果要设置命令,就填写在配置文件的 command 字段下,如果要设置命令的参数,就填写在配置文件的 ...
- U盘插入电脑后图标是灰色的,打开提示“请将磁盘插入驱动器”
问题描述: U盘插到win10电脑上后,U盘图标显示灰色,双击打开提示:请将磁盘插入驱动器,无法格式化,在U盘点右键/属性,显示为容量等为0. 解决办法如下: 1.首先要下载一个U盘芯片检测工具chi ...
- prometheus设置使用密码nginx反向代理访问
注意: 1.设置访问密码的方式 2.ngixn反向代理的配置 # 安装 Apache工具包 apt install apache2-utils htpasswd -bc /etc/nginx/.pro ...
- 在 Linux 中找出 CPU 占用高的进程
列出系统中 CPU 占用高的进程列表来确定.我认为只有两种方法能实现:使用 top 命令 和 ps 命令.出于一些理由,我更倾向于用 top 命令而不是 ps 命令.但是两个工具都能达到你要的目的,所 ...
- vue中使用html video标签,写中间暂停图标
一篇汇总video事件的文章,方便查阅: https://blog.csdn.net/xuehu837769474/article/details/107532487 html部分 <div c ...
- centos7中配置java + mysql +jdk +使用jar部署项目
centos7中配置java + mysql +jdk +使用jar部署项目 思维导图 1. 配置JDK環境 1.1下载jdk安装包 Java Downloads | Oracle 1.2 将下载j ...