一行命令教你快速搭建一个 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 端)为我打榜!

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

相关推荐
草字13 分钟前
css flex布局,设置flex-wrap:wrap换行后,如何保证子节点被内容撑高后,每一行的子节点高度一致。
前端·javascript·css
Slice_cy31 分钟前
深入剖析Vue框架:实现精简的computed
前端
局i32 分钟前
ES6 类与继承:现代 JavaScript 面向对象编程
前端·javascript·es6
白菜上路33 分钟前
C# Web API Mapster基本使用
前端·c#
叫我詹躲躲36 分钟前
偷偷收藏!前端老鸟绝不外传的150个JS插件,让你效率翻3倍…
前端·vue.js
会豪38 分钟前
如何让自己的前端项目更优雅
前端
uhakadotcom1 小时前
致新人:如何编写自己的第一个VSCode插件,以使用@vscode/vsce来做打包工具为例
前端·面试·github
流***陌1 小时前
用工招聘小程序:功能版块与前端设计解析
前端·小程序
russ3851 小时前
Vue3.4版本新特性,更优雅的处理组件间的数据双向绑定
vue.js
之恒君1 小时前
typescript(tsconfig.json - esModuleInterop)
前端·typescript