更新记录
0.0.5(2026-03-05) 下载此版本
generateVersion 支持在构建过程中自动生成版本号,支持多种格式和输出方式
generateRouter
根据 uni-app 项目的 pages.json 自动生成路由配置文件。
| 选项 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| pagesJsonPath | string | 'src/pages.json' | pages.json 文件路径 |
| outputPath | string | 'src/router.config.ts' | 输出文件路径 |
| outputFormat | 'ts' | 'js' | 'ts' | 输出文件格式 |
| nameStrategy | string | 'camelCase' | 路由名称策略 |
| includeSubPackages | boolean | true | 是否包含子包路由 |
| watch | boolean | true | 是否监听变化自动重新生成 |
| metaMapping | object | - | 页面 style 字段到 meta 的映射 |
| preserveRouteChanges | boolean | true | 是否保留用户对 routes 的修改 |
0.0.4(2026-02-28) 下载此版本
添加 generateVersion 插件及 format 工具导出
- 在 core 包的 common 模块中导出 format 工具
- 在 plugins 模块中添加并导出 generateVersion 插件
优化文件复制和对象合并逻辑,改进图标注入插件
- 重构 readDirRecursive 接口,返回文件/目录条目信息,减少冗余 stat 调用
- 引入并发限制机制,实现并行文件复制,提高 IO 效率
- 优化 copySourceToTarget 函数,支持并行复制及增量更新逻辑
- 深度合并函数 deepMerge 支持跳过 undefined,完善嵌套对象合并规则
- Logger 增加日志图标和颜色,提升控制台输出可读性
- injectIco 插件改用 Vite 官方 HtmlTagDescriptor 接口注入图标标签,增加自定义 link 标签的注入处理
- injectIco 插件 transformIndexHtml 钩子支持同时兼容字符串替换和官方标签注入两种方式
0.0.3(2026-02-04) 下载此版本
- 插件工厂新增safeExecuteSync同步函数]
- 将日志系统从简单工具类升级为功能完善的单例模式框架
- 新增 PluginLogger 接口,实现插件级别独立日志代理与控制
- 统一日志输出格式,包含时间戳、命名空间、图标与颜色支持
- 通过插件配置映射管理插件日志开关,实现灵活的日志启用控制
- 优化 BasePlugin 中日志初始化流程,调用 createPluginLogger 注入日志代理
- 更新日志级别支持 success/info/warn/error 四种类型
- 改进日志系统性能及扩展性,支持附加数据和调试友好输出
- 完善日志故障排查指南及生产环境性能建议
- Validator 类升级为泛型设计,支持编译时类型安全保障
- BasePlugin 泛型化,集成泛型 Validator 实现类型安全的配置验证
- 增加泛型参数约束 T 和 K,确保字段与默认值类型匹配
- Validator 的 fluent API 支持链式类型推断,增强类型推导连续性
- 自定义验证函数和默认值方法支持类型安全参数
- 更新架构图及 API 文档反映泛型验证机制
- 提供示例及最佳实践,指导类型安全配置开发和错误定位
- 保持与工厂及插件体系兼容,实现泛型验证全链路支持
平台兼容性
uni-app(3.6.17)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|
| √ | √ | √ | √ | √ | √ | √ | √ | √ |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| √ | √ | √ | √ | √ | √ | √ | √ | √ | - | √ | √ |
uni-app x(3.6.17)
| Chrome | Safari | Android | iOS | 鸿蒙 | 微信小程序 |
|---|---|---|---|---|---|
| √ | √ | √ | √ | √ | √ |
其他
| 多语言 | 暗黑模式 | 宽屏模式 |
|---|---|---|
| √ | √ | √ |
@meng-xi/vite-plugin

简介
@meng-xi/vite-plugin 是一个为 Vite 提供实用插件的工具包,同时也是一个完整的插件开发框架。
特性
- 开箱即用 - 提供文件复制、路由生成、版本管理、图标注入等实用插件
- 插件开发框架 - 导出 BasePlugin、Logger、Validator 等核心组件,快速构建自定义插件
- 类型安全 - 完整的 TypeScript 类型定义,配置验证器确保参数正确性
- 灵活配置 - 所有插件支持详细配置,满足多样化场景需求
文档
查看完整文档:https://mengxi-studio.github.io/vite-plugin/
安装
# npm
npm install @meng-xi/vite-plugin -D
# yarn
yarn add @meng-xi/vite-plugin -D
# pnpm
pnpm add @meng-xi/vite-plugin -D
快速开始
使用内置插件
import { defineConfig } from 'vite'
import { copyFile, generateRouter, generateVersion, injectIco } from '@meng-xi/vite-plugin'
export default defineConfig({
plugins: [
// 复制文件
copyFile({
sourceDir: 'src/assets',
targetDir: 'dist/assets'
}),
// 生成路由配置(uni-app)
generateRouter({
pagesJsonPath: 'src/pages.json',
outputPath: 'src/router.config.ts'
}),
// 生成版本号
generateVersion({
format: 'datetime',
outputType: 'both'
}),
// 注入网站图标
injectIco({
base: '/assets'
})
]
})
开发自定义插件
import { BasePlugin, createPluginFactory } from '@meng-xi/vite-plugin'
import type { Plugin } from 'vite'
interface MyPluginOptions {
path: string
enabled?: boolean
verbose?: boolean
errorStrategy?: 'throw' | 'log' | 'ignore'
}
class MyPlugin extends BasePlugin<MyPluginOptions> {
protected getDefaultOptions() {
return { path: './default' }
}
protected validateOptions(): void {
this.validator.field('path').required().string().validate()
}
protected getPluginName(): string {
return 'my-plugin'
}
protected addPluginHooks(plugin: Plugin): void {
plugin.buildStart = () => {
this.logger.info(`Plugin started with path: ${this.options.path}`)
}
}
}
export const myPlugin = createPluginFactory(MyPlugin)
内置插件
copyFile
在 Vite 构建完成后复制文件或目录到指定位置。
| 选项 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| sourceDir | string | - | 源目录路径(必填) |
| targetDir | string | - | 目标目录路径(必填) |
| overwrite | boolean | true | 是否覆盖现有文件 |
| recursive | boolean | true | 是否递归复制子目录 |
| incremental | boolean | true | 是否启用增量复制 |
generateRouter
根据 uni-app 项目的 pages.json 自动生成路由配置文件。
| 选项 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| pagesJsonPath | string | 'src/pages.json' | pages.json 文件路径 |
| outputPath | string | 'src/router.config.ts' | 输出文件路径 |
| outputFormat | 'ts' | 'js' | 'ts' | 输出文件格式 |
| nameStrategy | string | 'camelCase' | 路由名称策略 |
| includeSubPackages | boolean | true | 是否包含子包路由 |
| watch | boolean | true | 是否监听变化自动重新生成 |
| metaMapping | object | - | 页面 style 字段到 meta 的映射 |
| preserveRouteChanges | boolean | true | 是否保留用户对 routes 的修改 |
generateVersion
在 Vite 构建过程中自动生成版本号。
| 选项 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| format | string | 'timestamp' | 版本格式 |
| outputType | string | 'file' | 输出类型 |
| outputFile | string | 'version.json' | 输出文件路径 |
| defineName | string | '__APPVERSION_\' | 注入的全局变量名 |
| prefix | string | - | 版本号前缀 |
| suffix | string | - | 版本号后缀 |
injectIco
在 Vite 构建过程中将网站图标链接注入到 HTML 文件的 head 中。
| 选项 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| base | string | - | 图标文件的基础路径 |
| url | string | - | 图标的完整 URL |
| link | string | - | 自定义完整的 link 标签 HTML |
| icons | array | - | 自定义图标数组 |
| copyOptions | object | - | 图标文件复制配置 |
更新日志
贡献指南
欢迎贡献代码!请按以下步骤操作:
- Fork 本项目
- 创建功能分支:
git checkout -b feature/your-feature - 提交变更:
git commit -m "feat: your feature description" - 推送分支:
git push origin feature/your-feature - 创建 Pull Request

收藏人数:
https://github.com/MengXi-Studio/vite-plugin
https://www.npmjs.com/package/@meng-xi/vite-plugin
下载插件并导入HBuilderX
下载插件ZIP
赞赏(0)
下载 25
赞赏 0
下载 11377421
赞赏 1871
赞赏
京公网安备:11010802035340号