version-maker
v0.1.10
Published
Write a minimal build stamp file with version and release time.
Downloads
2
Maintainers
Readme
version-maker(Vite 集成)
一个极简、零依赖的构建标记工具,用于在 Vite 构建时自动:
- 写入文件:
dist/version.txt(包含version与released_at) - 注入环境变量:
import.meta.env.VER_MAKER_APP_VERSIONimport.meta.env.VER_MAKER_APP_RELEASED_AT
行为约定:
- 开发模式(
vite dev):不生成新时间、不写文件,VER_MAKER_APP_RELEASED_AT读取上次build的值(若无则为N/A)。 - 构建模式(
vite build):可选自动升级版本(autoBump),生成新的时间并写入文件,同时注入两个环境变量。
安装
npm i -D version-makerVite 插件使用
vite.config.js
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import buildStamp from 'version-maker/vite'
export default defineConfig({
plugins: [
vue(),
buildStamp({
// 输出文件(构建完成后写入两行:version 与 released_at)
out: 'dist/version.txt',
// 时间格式与时区(人类可读部分)
timezone: 'Asia/Shanghai', // 可选 'UTC' 或其他 IANA 时区
timeFormat: 'YYYY-MM-DD HH:mm:ss Z',
// 构建时是否自动升级版本(默认 true),及升级级别
autoBump: true,
bump: 'patch' // 可选 'patch' | 'minor' | 'major'
})
]
})环境变量(插件直接注入)
import.meta.env.VER_MAKER_APP_VERSION:package.json.version(构建时如启用autoBump,为升级后的版本)import.meta.env.VER_MAKER_APP_RELEASED_AT:形如1731307200000[2025-11-11 12:00:00 +08:00]- 左侧为毫秒级 Unix 时间戳
[]内为人类可读时间(按timezone和timeFormat格式化)- 开发模式下读取上次
build的值,若不存在则为N/A
前端代码示例
console.info('[version-maker] VER_MAKER_APP_VERSION:', import.meta.env.VER_MAKER_APP_VERSION)
console.info('[version-maker] VER_MAKER_APP_RELEASED_AT:', import.meta.env.VER_MAKER_APP_RELEASED_AT)构建输出验证
- 运行构建:
npm run build - 查看文件:
dist/version.txt,内容示例:version: 0.1.3 released_at: 1731307200000[2025-11-11 12:00:00 +08:00]
说明:
- 两行内容对应同一时刻,
released_at的时间戳与格式化时间是一致的。 - 构建期间注入的
VER_MAKER_APP_VERSION与VER_MAKER_APP_RELEASED_AT与文件写入值保持一致。
