无论是 vue2 全家桶还是 vue3 + vite + TypeScript,组件库的使用几乎大家都会,但自己开发一个独立组件库就不是每个人都掌握的,因为搭建组件库的基础开发环境,就会让很多同学望而却步。一个组件库应该至少要包括三个方面:

  1. 组件库的开发和打包;
  2. 组件库文档的开发和打包;
  3. 命令行工具 cli 快速创建新组件。

这几天 程序员优雅哥 搭建了一个组件库的基础脚手架:

vue3-component-library-archetype

在这个脚手架的基础上,大家可以使用内置的 cli 快速创建新组件,按照套路开发组件及文档即可。脚手架很大程度上简化了环境的搭建、打包的配置、类型定义的抽取等工具,开箱即用,大家可以将注意力集中到组件本身的开发上。

脚手架采用 monorepo 风格,使用 pnpm 作为包管理工具。

1 组件库脚手架内容

  • 组件库开发、打包、发布
  • 组件库文档编写、打包、一套代码编写和演示 Demo
  • 快速创建组件命令行 cli
  • 组件库搭建的 example 演示

2 组件库脚手架技术栈

  • Vite 3
  • Vue 3
  • TypeScript
  • Vitepress 1.0
  • ESLint

3 使用说明

3.1 克隆代码到本地

git clone git@github.com:HeroCloudy/vue3-component-library-archetype.git

3.2 安装依赖

如果您没有安装 pnpm,需要先按照 pnpm

npm install -g pnpm

安装依赖:

pnpm i

3.3 本地开发

在 example 中开发组件,使用命令:

pnpm run dev:dev

访问地址为 http://localhost:3000/

在组件库文档中开发组件,使用命令:

pnpm run docs:dev

访问地址为 http://localhost:3100/

组件库文档界面如下:

3.4 创建新组件

pnpm run gen:component

按照提示输入组件名称、组件中文名称、组件类型(.tsx 或 .vue)。

执行命令创建完组件后,会自动在组件库中注册该组件,同时自动生成文档模板及文档中的 demo,无需任何手动配置。

3.5 构建文档

pnpm run build:docs

打包构建后的文件位于 docs/.vitepress/dist 目录

3.6 构建 example

pnpm run build:dev

打包构建后的文件位于 dist 目录

3.7 发布组件库

组件库打包:

pnpm run build:lib

在发布 npm 前可以在本地私服进行测试。

启动本地私服:

pnpm run start:verdaccio

启动成功后在浏览器中访问 http://localhost:4873/

如果初次使用,需要创建用户。

发布组件库到本地私服中:

pnpm run pub:local

4 组件库命令说明

组件库的命令入口均在根目录的 package.json 中的 scripts 中。由于采用了 monorepo 的方式,大多命令的实现都在各自的模块中。

所有命令如下:

- dev:dev
- dev:uat
- dev:prod
- build:dev
- build:uat
- build:prod
- preview:example
- build:lib
- docs:dev
- docs:build
- docs:preview
- gen:component
- start:verdaccio
- pub:local

pnpm run dev:dev

本地开发 example,使用 dev 环境配置,访问地址为 http://localhost:3000/

pnpm run dev:uat

本地开发 example,使用 uat 环境配置,访问地址为 http://localhost:3000/

pnpm run dev:prod

本地开发 example,使用 prod 环境配置,访问地址为 http://localhost:3000/

pnpm run build:dev

打包 dev 环境 example,打包生成的文件位于项目根目录的 dist 目录

pnpm run build:uat

打包 uat 环境 example,打包生成的文件位于项目根目录的 dist 目录

pnpm run build:prod

打包 prod 环境 example,打包生成的文件位于项目根目录的 dist 目录

pnpm run preview:example

预览打包后的 example,访问地址为:http://localhost:4173/

pnpm run build:lib

打包组件库,打包生成的文件位于项目根目录的 lib 目录

pnpm run docs:dev

本地开发组件库文档,访问地址为:http://localhost:3100/

pnpm run docs:build

组件库文档打包,打包生成的文件位于项目根目录下的 docs/.vitepress/dist 目录

pnpm run docs:preview

预览打包后的组件库文档,访问地址为:http://localhost:4173/

pnpm run gen:component

快速创建新组件。依次输入组件名、组件描述(中文名称)、组件类型(tsx \ vue)即可自动生成组件并完成配置。

使用该命令可避免组件开发人员分散精力到各种配置、基础目录和文件的创建中,可以让其聚焦于组件本身的开发。

pnpm run start:verdaccio

启动 verdaccio。 本地开发时,使用 verdaccio 作为测试使用的本地 npm 私服。

使用该命令启动 verdaccio 私服,启动成功后在浏览器中访问 http://localhost:4873/

如果初次使用,需要创建用户,可以搜索 verdaccio,查看其具体使用。

pnpm run pub:local

发布组件库到本地私服。


If you have any questions, please contact me

后面的专题将分享这个脚手架的实现过程,和大家一步步实现这个脚手架,并基于该脚手架实现 JSON Schema 表单、列表等组件,并在 example 中开发通用后台管理系统。

感谢你阅读本文,如果本文给了你一点点帮助或者启发,还请三连支持一下,点赞、关注、收藏,作者会持续与大家分享更多干货

一个实用的 vite + vue3 组件库脚手架工具,提升开发效率的更多相关文章

  1. Vite+TS带你搭建一个属于自己的Vue3组件库

    theme: nico 前言 随着前端技术的发展,业界涌现出了许多的UI组件库.例如我们熟知的ElementUI,Vant,AntDesign等等.但是作为一个前端开发者,你知道一个UI组件库是如何被 ...

  2. 开箱即用 yyg-cli(脚手架工具):快速创建 vue3 组件库和vue3 全家桶项目

    1 yyg-cli 是什么 yyg-cli 是优雅哥开发的快速创建 vue3 项目的脚手架.在 npm 上发布了两个月,11月1日进行了大升级,发布 1.1.0 版本:支持创建 vue3 全家桶项目和 ...

  3. 从0搭建Vue3组件库:button组件

    button组件几乎是每个组件库都有的:其实实现一个button组件是很简单的.本篇文章将带你一步一步的实现一个button组件.如果你想了解完整的组件库搭建,你可以先看使用Vite和TypeScri ...

  4. 从0搭建vue3组件库: 如何完整搭建一个前端脚手架?

    相信大家在前端开发中都使用过很多前端脚手架,如vue-cli,create-vite,create-vue等:本篇文章将会为大家详细介绍这些前端脚手架是如何实现的,并且从零实现一个create-kit ...

  5. 京东 vue3 组件库震撼升级,如约而至!

    京东零售开源项目 NutUI 是一套京东风格的轻量级移动端 Vue 组件库,是开发和服务于移动 Web 界面的企业级产品.经过长时间的开发与打磨,NutUI 3.0 终于和大家见面了!3.0 版本在技 ...

  6. 从0搭建vue3组件库:Shake抖动组件

    先看下效果 其实就是个抖动效果组件,实现起来也非常简单.之所以做这样一个组件是为了后面写Form表单的时候会用到它做一个规则校验,比如下面一个简单的登录页面,当点击登录会提示用户哪个信息没输入,当然这 ...

  7. 从0搭建vue3组件库:自动化发布、管理版本号、生成 changelog、tag

    今天看到一篇文章中提到了一个好用的工具release-it.刚好可以用在我正在开发的vue3组件库.纸上得来终觉浅,绝知此事要躬行,说干就干,下面就介绍如何将release-it应用到实际项目中,让组 ...

  8. 从0搭建vue3组件库: Input组件

    本篇文章将为我们的组件库添加一个新成员:Input组件.其中Input组件要实现的功能有: 基础用法 禁用状态 尺寸大小 输入长度 可清空 密码框 带Icon的输入框 文本域 自适应文本高度的文本域 ...

  9. 京东 Vue3 组件库闪亮登场

    京东零售开源项目 NutUI 是一套京东风格的轻量级移动端 Vue 组件库,是开发和服务于移动 Web 界面的企业级产品.经过长时间的开发与打磨,NutUI 3.0 终于要和大家见面了!3.0 版本在 ...

随机推荐

  1. java学习第一天.day06

    方法 方法的优点 1. 使程序变得更简短而清晰. 2. 有利于程序维护. 3. 可以提高程序开发的效率. 4. 提高了代码的重用性. static的作用 static在方法中如果没有添加就只能用对象调 ...

  2. React报错之Expected an assignment or function call and instead saw an expression

    正文从这开始~ 总览 当我们忘记从函数中返回值时,会产生"Expected an assignment or function call and instead saw an express ...

  3. Lua环境搭建编译[Lua5.2+VS2010]

    这里是我编译的和一个测试Demo:http://download.csdn.net/detail/allh45601/6783653 大家如果看我下边说的不是很清楚,可以下载这个具体工程: 群:103 ...

  4. 座位安排(欧拉回路,高斯消元,bitset)

    题面 由于旋转大师 F r e n c h \rm French French 的离去, A r e x t r e \rm Arextre Arextre 光荣地承担了给全班换座位的重任. 由于这是 ...

  5. Go 语言入门 3-动态数组(slice)的特性及实现原理

    go 语言中的动态数组(slice),是基于数组实现的,可以相比数组而言更加的灵活.其他语言的 slice 通常仅是一个 API, 但是 go 语言的 slice 不仅仅是一种操作, 也是一种数据结构 ...

  6. 第四十四篇:Git分支(关键知识点)

    好家伙, GIT分支 分支就像是平行宇宙,两个平行宇宙自己平行,不相干扰,平安无事, 某一天它想不开,合并了.然后就变成了我写这篇博客的动机了. 1.关于Git分支中常用的指令 列出所有分支 git ...

  7. 【设计模式】Java设计模式 - 外观模式

    Java设计模式 - 外观模式 不断学习才是王道 继续踏上学习之路,学之分享笔记 总有一天我也能像各位大佬一样 原创作品,更多关注我CSDN: 一个有梦有戏的人 准备将博客园.CSDN一起记录分享自己 ...

  8. 注解@PostConstruct分析

    作用 1.注解@PostConstruct可以添加在类的方法上面,如果这个类被IOC容器托管,那么在对Bean进行初始化前的时候会调用被这个注解修饰的方法 被定义在哪里? 1.被定义在了CommonA ...

  9. Python数据科学手册-Pandas:累计与分组

    简单累计功能 Series sum() 返回一个 统计值 DataFrame sum.默认对每列进行统计 设置axis参数,对每一行 进行统计 describe()可以计算每一列的若干常用统计值. 获 ...

  10. 永恒之蓝(MS17-010)漏洞复现

    1. 漏洞介绍 永恒之蓝: 恒之蓝是指2017年4月14日晚,黑客团体Shadow Brokers(影子经纪人)公布一大批网络攻击工具,其中包含"永恒之蓝"工具,"永恒之 ...