一行命令教你快速搭建一个 Vue3 组件库

作为一个前端,相信很多小伙伴都想搭建一个属于自己的组件库。但是却又不知道从哪里入手,不知道如何搭建一个开发组件库的框架。别担心,本篇文章将教你如何快速搭建一个属于自己的 Vue3 组件库。

了解 easyest 框架

Easyest 是一个 Vue3 组件库开发环境框架,采用 Vite4+TypeScript 为技术栈,支持按需加载,单元测试,自动打包与发布等功能,可以让我们直接上手组件库的开发。

它是我去年开发的一个框架,如果你想了解这个框架是如何实现的也可以点击Vite+TypeScript 从零搭建 Vue3 组件库 查看完整教程,每一行代码都提现在了教程里面。当然,你也可以直接使用,直接一行命令就能拥有~

如何使用

只需要在终端执行

js 复制代码
npm create easyest

根据提示输入项目名称,选择 easyest 模板,等待一会,就可以得到一个组件库开发框架

这里命名可以随意,我的就命名为 easyest,然后进入这个项目执行

复制代码
pnpm install

初次安装用时可能比较长,同时注意这里用的是 pnpm,因为该框架采用的是基于 pnpm 的 Monorepo 项目。如果没安装 pnpm 可以全局安装一下

复制代码
npm install pnpm -g

安装完成之后我们就可以启动我们的测试项目了,这里可以实时预览调试我们开发中的组件

arduino 复制代码
pnpm run easyest:dev

启动完成就可以在浏览器中访问了

可以看到出现了两个按钮组件,下面我们来看下这些组件是如何开发的

组件开发

我们的组件库的包所在的位置是在packages/components下,每个组件都在 src 目录下,这里预设了两个组件buttonicon,后续开发其它组件都放在这个目录下即可

每个组件的目录如下,以 button 为例

lua 复制代码
-- components
  -- src
     -- button
        -- _tests_ 单元测试用例
        -- style 样式文件
        -- button.vue 组件主要逻辑
        -- index.ts 导出组件
     -- index.ts 导出全部组件
  -- index.ts 组件库入口文件

组件调试

刚刚启动的测试项目其实是在 play 下,我们来到play/app.vue

js 复制代码
<template>
  <div>
    <ea-button>按钮</ea-button>
    <Button>123</Button>
  </div>
</template>
<script lang="ts" setup>
import { Button } from '@easyest/components';
</script>

可以从@easyest/components包中引入我们开发中的组件,这里是可以实时预览的,比如我们将 button.vue 加两个字

然后保存一下,浏览器上的 button 组件就能自动刷新

打包组件库

当我们组件开发完后就可以打包了

arduino 复制代码
pnpm run build:easyest

项目打包后的文件地址是在packages/easyest下,也就是说我们最终要发布的就是这个文件

所以为了避免重名,可以到easyest/package.json中改一下包名,版本,作者,git 地址,改成你自己的即可

组件发布

发布之前你需要将项目关联一个 git 仓库,并且需要先进行提交到 git 仓库才能发布。同时 commit 之前也有一些规则校验,比如你需要按照下图所示规则提交

提交完成之后就可以发布组件库了,直接执行pnpm run publish:easyest

此时会有一些提示如选择如何提升版本,是否发布,是否加个 tag 等等

当然,如果你没有登录 npm 的话,会先让你登录 npm,所以这里需要你先注册 npm 账户。一切就绪不出意外的话就能发布成功了,发布成功之后直接在 vue3 项目中安装就能使用啦

写在最后

本篇文章只是教你如何使用这个框架,如果你想更深入的理解学习如何开发一个 vue3 组件库不妨看一下教程。里面包含很多内容如下

仓库地址(点个 Star 吧!): easyest

最后我在参与创作者打榜活动,点击这里 或者下方(pc 端)为我打榜!

你一票我一票,小月明天就出道!你不投我不投,小月何时能出头!

相关推荐
友友马15 分钟前
『 QT 』QT控件属性全解析 (一)
开发语言·前端·qt
不想上班只想要钱41 分钟前
vue3+vite创建的项目,运行后没有 Network地址
前端·javascript·vue.js
流***陌1 小时前
手办盲盒抽赏小程序前端功能设计:兼顾收藏需求与抽赏乐趣
前端·小程序
岁月宁静1 小时前
在富文本编辑器中封装实用的 AI 写作助手功能
前端·vue.js·人工智能
金士顿2 小时前
为什么MainWindow.xaml绑定的datacontext,EtherCATSuiteCtrl.xaml直接用了?
前端
533_2 小时前
[css] flex布局中的英文字母不换行问题
前端·css
浮游本尊2 小时前
React 18.x 学习计划 - 第四天:React Hooks深入
前端·学习·react.js
future_studio2 小时前
聊聊 Unity(小白专享、C# 小程序 之 日历、小闹钟)
前端·html
Yeats_Liao3 小时前
Go Web 编程快速入门 · 04 - 请求对象 Request:头、体与查询参数
前端·golang·iphone
祈祷苍天赐我java之术3 小时前
Redis 数据类型与使用场景
java·开发语言·前端·redis·分布式·spring·bootstrap