Vue-library-start,一个基于Vite的vue组件库开发模板

Vue-library-start

文档

概述

本项目是一个基于 Vite 和 pnpm 等工具搭建的快速组件库开发架构。借助 Vite 的高效开发服务器和构建能力,以及 pnpm 的高效依赖管理,能帮助开发者快速搭建和开发 Vue 组件库。

技术栈

  • Vite:现代前端构建工具,提供了快速的冷启动和热更新能力。
  • pnpm:快速、节省磁盘空间的包管理器,相比 npm 和 yarn 能更高效地管理依赖。
  • Vue:渐进式 JavaScript 框架,用于构建组件化的用户界面。

必须依赖

  • pnpm: 比 npm 和 yarn 更高效的包管理工具。
  • node >= 20: javascript 运行时环境。

安装步骤

bash 复制代码
# 克隆仓库
git clone https://github.com/yourusername/vue-library-start.git
cd vue-library-start

# 安装依赖
pnpm install

快速开始

引入组件

javascript 复制代码
// 全局引入
import { createApp } from 'vue';
import XLibrary from 'x-library';
import 'x-library/dist/style.css';

const app = createApp(App);
app.use(XLibrary);

// 按需引入
import { Avatar } from 'x-library';
import 'x-library/es/avatar/style/css';

使用示例

vue 复制代码
<template>
  <xAvatar src="https://example.com/avatar.jpg" alt="用户头像" />
</template>

<script setup>
import { Avatar as xAvatar } from 'x-library';
</script>

开发指南

启动开发环境

bash 复制代码
# 启动组件演示环境
pnpm play

# 启动文档站点
pnpm docs:dev

添加新组件

  1. src/ 目录下创建新组件文件夹(如 src/button
  2. 添加组件实现文件 index.tsx 和类型定义 interface.d.ts
  3. src/components.ts 中导入新开发组件
  4. 运行 pnpm run build:watch
  5. play/src/App.vue 中添加演示代码

构建与发布

构建组件库

bash 复制代码
# 构建所有格式 (ES Module, CommonJS, UMD)
pnpm build

# 监听文件变化,实时构建
pnpm build:watch

构建文档

bash 复制代码
pnpm docs:build

发布到 npm

bash 复制代码
# 确保已登录 npm
npm login

# 发布包
pnpm publish

代码质量

代码检查

bash 复制代码
# ESLint 检查
pnpm lint:eslint

# StyleLint 检查
pnpm lint:style

# 代码格式化
pnpm lint:format

类型检查

bash 复制代码
pnpm typecheck

项目结构

以下是项目的主要目录结构及各部分的作用:

  • /play:用于演示组件的使用场景。
  • /src :组件库的源代码目录。
    • /[component] :存放各个组件的源代码(如 /avatar)。
    • /_utils:存放工具函数的目录。
    • /components.ts:组件注册入口文件。
    • /index.ts:组件库打包入口。
  • /docs:组件库的文档目录,使用 VitePress 构建。
  • /resolver:解析器相关代码。
  • /vite.config.mts:Vite 开发环境配置。
  • /vite.config.dist.mts:组件库构建配置。

注意/typings 目录会在构建过程中自动生成,包含组件库的类型定义文件。

许可证

本项目采用 MIT 许可证 开源,详情请查看 LICENSE 文件。

相关推荐
天天扭码1 分钟前
《很全面的前端面试题》——HTML篇
前端·面试·html
xw53 分钟前
我犯了错,我于是为我的uni-app项目引入环境标志
前端·uni-app
!win !6 分钟前
被老板怼后,我为uni-app项目引入环境标志
前端·小程序·uni-app
Burt7 分钟前
tsdown vs tsup, 豆包回答一坨屎,还是google AI厉害
前端
群联云防护小杜1 小时前
构建分布式高防架构实现业务零中断
前端·网络·分布式·tcp/ip·安全·游戏·架构
ohMyGod_1232 小时前
React16,17,18,19新特性更新对比
前端·javascript·react.js
前端小趴菜052 小时前
React-forwardRef-useImperativeHandle
前端·vue.js·react.js
@大迁世界2 小时前
第1章 React组件开发基础
前端·javascript·react.js·前端框架·ecmascript
Hilaku2 小时前
从一个实战项目,看懂 `new DataTransfer()` 的三大妙用
前端·javascript·jquery
爱分享的程序员2 小时前
前端面试专栏-算法篇:20. 贪心算法与动态规划入门
前端·javascript·node.js