Vite插件v0.2.5:注释头模板化升级

📅 2026/6/26 10:06:38
Vite插件v0.2.5:注释头模板化升级
版本0.2.5 | 协议MIT | 依赖Vite 5.0.0 8.0.0写在前面v0.2.5 的主题是让注释头从开关变为模板。本次更新将generateRouter的fileHeader参数升级为headerTemplate从简单的布尔开关进化为支持占位符的字符串模板系统。你可以自由组合{name}、{date}、{date:格式}、{version}、{custom:键名}等占位符按需定制注释头内容、顺序和日期格式。同时新增customFields选项支持注入自定义字段。此外移除了已废弃且无消费者的serializeValueCompact函数。本版重点能力一句话说明你需要做什么headerTemplate模板系统字符串模板 占位符自由组合注释头内容和顺序替换fileHeader为新参数自定义日期格式{date:YYYY-MM-DD}等灵活格式化在模板中使用{date:格式}自定义字段customFields{custom:键名}占位符注入自定义内容配置customFields选项移除serializeValueCompact已废弃且无消费者使用serializeValue(value, true)替代检查是否有直接调用升级方式修改devDependencies中版本号为^0.2.5。有 Breaking Change需将fileHeader替换为headerTemplate。一、5 分钟快速上手1.1 安装与升级{devDependencies:{meng-xi/vite-plugin:^0.2.5}}1.2 迁移 fileHeader → headerTemplate// v0.2.4使用 fileHeadergenerateRouter({fileHeader:true})// v0.2.5替换为 headerTemplategenerateRouter({headerTemplate:true})0.2.40.2.5说明fileHeader: trueheaderTemplate: true生成默认注释头fileHeader: falseheaderTemplate: false/ 不传不生成注释头-headerTemplate: {name} {date:YYYY-MM-DD} {version}自定义模板新增1.3 自定义模板// 默认注释头与 0.2.4 fileHeader: true 输出一致generateRouter({headerTemplate:true})// 生成/**// * generate-router 2026-06-24 14:30:00 0.2.5// */// 自定义日期格式generateRouter({headerTemplate:{name} {date:YYYY-MM-DD} {version}})// 生成/**// * generate-router 2026-06-24 0.2.5// */// 自定义字段generateRouter({headerTemplate:{name} {custom:author} {date} {version},customFields:{author:MengXi Studio}})// 生成/**// * generate-router MengXi Studio 2026-06-24 14:30:00 0.2.5// */二、headerTemplate 模板系统2.1 占位符一览占位符替换值示例{name}插件名称generate-router{date}生成日期时间默认格式YYYY-MM-DD HH:mm:ss2026-06-24 14:30:00{date:格式}按指定格式输出日期时间{date:YYYY-MM-DD}→2026-06-24{version}插件版本号0.2.5{custom:键名}自定义字段值从customFields读取{custom:author}→MengXi Studio2.2 顺序由模板决定占位符在模板中的位置决定了注释头中的输出顺序// 日期在前generateRouter({headerTemplate:{date:YYYY-MM-DD} {name} {version}})// 生成/**// * 2026-06-24 generate-router 0.2.5// */// 版本在前generateRouter({headerTemplate:{version} {name} {date}})// 生成/**// * 0.2.5 generate-router 2026-06-24 14:30:00// */2.3 日期格式化{date:格式}支持与formatDate一致的格式符格式符含义示例YYYY四位年份2026MM两位月份06DD两位日期24HH两位小时14mm两位分钟30ss两位秒数00// 仅日期generateRouter({headerTemplate:{name} {date:YYYY-MM-DD}})// → generate-router 2026-06-24// 紧凑格式generateRouter({headerTemplate:{name} {date:YYYYMMDD_HHmmss}})// → generate-router 20260624_1430002.4 自定义字段通过customFields选项为{custom:键名}占位符提供值generateRouter({headerTemplate:{name} {custom:author} {custom:project} {date:YYYY-MM-DD} {version},customFields:{author:MengXi Studio,project:MyApp}})// 生成/**// * generate-router MengXi Studio MyApp 2026-06-24 0.2.5// */如果{custom:键名}对应的键在customFields中不存在占位符将原样保留。三、Breaking Changes 详解3.1 fileHeader → headerTemplatefileHeader参数已完全移除替换为headerTemplate// ❌ 0.2.5 不再支持generateRouter({fileHeader:true})// ✅ 使用 headerTemplategenerateRouter({headerTemplate:true})重命名理由参数从boolean升级为boolean | string后核心能力是模板headerTemplate更准确描述字符串模板功能。3.2 serializeValueCompact 移除serializeValueCompact已废弃且无消费者直接使用serializeValue(value, true)替代// ❌ 已移除import{serializeValueCompact}frommeng-xi/vite-plugin/common/code-manipulation// ✅ 替代方案import{serializeValue}frommeng-xi/vite-plugin/common/code-manipulationserializeValue(value,true)四、完整配置项interfaceGenerateRouterOptionsextendsBasePluginOptions{pagesJsonPath?:string// pages.json 路径默认 src/pages.jsonoutputPath?:string// 输出文件路径默认 src/router.config.tsoutputFormat?:ts|js// 输出格式默认 tsnameStrategy?:NameStrategy// 命名策略默认 camelCasecustomNameGenerator?:(path:string)string// 自定义命名函数includeSubPackages?:boolean// 包含子包默认 truewatch?:boolean// 监听变化默认 truemetaMapping?:Recordstring,string// meta 字段映射exportTypes?:boolean// 导出类型默认 truepreserveRouteChanges?:boolean// 保留用户修改默认 truedts?:string|boolean// 类型声明文件默认 falseheaderTemplate?:boolean|string// 文件注释头模板默认 falsecustomFields?:Recordstring,string// 自定义字段键值对默认 {}}五、实战场景5.1 团队协作注释头标注作者和项目// vite.config.tsimport{generateRouter}frommeng-xi/vite-pluginexportdefaultdefineConfig({plugins:[generateRouter({headerTemplate:{name} {custom:author} {custom:project} {date:YYYY-MM-DD} {version},customFields:{author:MengXi Studio,project:MyApp},preserveRouteChanges:true,dts:true})]})生成的文件/** * generate-router MengXi Studio MyApp 2026-06-24 0.2.5 */importtype{RouteConfig}frommeng-xi/uni-routerexportconstroutes:RouteConfig[][{path:/pages/index/index,name:Home,meta:{title:首页,isTab:true}}]exportdefaultroutes5.2 精简注释头仅保留日期和版本generateRouter({headerTemplate:{date:YYYY-MM-DD} v{version}})// 生成/**// * 2026-06-24 v0.2.5// */5.3 CI/CD 友好紧凑时间戳generateRouter({headerTemplate:{name} {date:YYYYMMDD_HHmmss} {version}})// 生成/**// * generate-router 20260624_143000 0.2.5// */六、内置插件全景v0.2.5 共包含15 个实用插件覆盖构建优化的各个方面插件enforce描述assetManifestpost构建后生成资源映射清单支持 Vite/Webpack/自定义格式、按入口分组和运行时注入autoImportpre自动导入支持预设映射、通配符*、目录扫描、Vue 模板自动导入和类型声明生成buildProgress-终端实时构建进度条支持 bar / spinner / minimalbundleAnalyzerpost构建产物体积分析支持 JSON/HTML 报告、gzip 计算和阈值告警compressAssetspost构建产物压缩支持 gzip / brotli / both并发压缩和统计报告copyFilepost构建完成后复制文件或目录支持增量复制envGuardpost环境变量校验支持类型检查、范围验证、自定义规则和运行时守卫faviconManagerpost管理网站图标链接注入和文件复制generateRouterpost根据 pages.json 自动生成路由配置与类型声明uni-appgenerateVersionpost自动生成版本号支持文件输出和全局变量注入htmlInjectpostHTML 内容注入支持多种位置、选择器定位、条件注入和安全过滤imageOptimizerpost图片优化压缩与格式转换支持 WebP/AVIF 转换、SVG 优化、并发处理loadingManagerpost全局 Loading 状态管理支持请求拦截、防抖、过渡动画proxyManager-开发代理管理支持环境切换、规则文件、请求日志、延迟模拟和响应修改versionUpdateCheckerpost运行时版本更新检查支持多种提示样式和自定义回调七、子路径导出变更移除meng-xi/vite-plugin/plugins/generate-router移除配置选项fileHeadermeng-xi/vite-plugin/common/code-manipulation移除导出函数serializeValueCompact新增meng-xi/vite-plugin/plugins/generate-router新增配置选项headerTemplateboolean | stringmeng-xi/vite-plugin/plugins/generate-router新增配置选项customFieldsRecordstring, string