打包自动注入项目名 + 版本号,我用这个插件效率翻倍了

137 阅读2分钟

🧩 打包自动注入项目名 + 版本号,我用这个插件效率翻倍了

“版本号、项目名、构建时间,能不能一次注入、自动更新、还有主题切换样式?”

可以,现在 unplugin-version-injector 插件更新了,正式支持:

  • ✅ 自动注入 project name(来自 package.json.name)
  • ✅ 自动注入 version(来自 package.json.version)
  • ✅ 自动注入 build time(构建时间戳)
  • ✅ 自动注入 git commit hash(可选)
  • 新增:支持自动切换 UI 主题(基于项目名)

🚀 插件简介:为构建注入一切你想要的“标识”

很多前端项目打包后上线,但你可能遇到这些问题:

  • 用户报错,你不知道是哪个版本;

  • 多项目共用一套 UI,但项目名混淆;

  • 不同项目打包出来,UI 配色或主题难区分;

  • 想做自动“夜间/浅色模式切换”,但手动维护太麻烦;

现在只需要安装这个插件 👇:

pnpm add @unplugin-version-injector -D

配置:

// vite.config.ts
import { versionInjector } from '@unplugin-version-injector/vite'

export default {
  plugins: [
    versionInjector({
      injectToEnv: true,
      enableThemeSwitch: true,
    }),
  ],
}

📦 本次更新重点

1️⃣ ✅ 注入

project name

以前只能注入版本号,现在直接注入 package.json.name,你可以这样使用:

console.log(import.meta.env.PROJECT_NAME)
  • 日志、上报、埋点都能携带当前项目名
  • 多项目共用部署时也能清晰区分
  • 页面标题 / 主题颜色也能自动适配项目

2️⃣ ✅ 自动主题切换(亮点!)

这是本次最大亮点:你可以根据项目名自动切换 UI 主题

场景:
  • 你有多个子项目,共用同一套组件库

  • 每个项目主题风格不同(如 admin / user / console)

  • 每次构建都要手动改颜色或变量,麻烦!

配置方式:
  plugins: [
      versionInjector(),
      ....
      ]


💡 Bonus:自动判断系统主题

你还可以加上对系统暗色模式的判断,实现双重自动切换

const isDark = window.matchMedia('(prefers-color-scheme: dark)').matches
const project = import.meta.env.PROJECT_NAME


🧪 输出内容预览(真实截图展示)

启用 injectToEnv: true 后,插件会自动注入以下内容:


✅ 浅色主题控制台输出

image.png


🌙 深色(暗色)主题控制台输出

image_1.png


  • VERSION:版本号
  • PROJECT_NAME:项目名
  • BUILD_TIME:构建时间

🧩 页面注入的 meta 标签:

image_2.png

最终构建时会自动在 HTML 注入:

<meta name="version" content="0.165.1">
<meta name="project" content="xxx-admin">

非常适合用于页面监控、上报 SDK 或 SEO 信息识别。


📦 应用场景汇总

场景示例
日志埋点版本跟踪track({ version: import.meta.env.VERSION })
多项目区分 UI 风格themeMap + html.class
页面底部显示版本v{VERSION}
自动切换主题matchMedia + project name
页面注入版本信息

🔗 开源地址

插件已开源,欢迎 Star 与交流:

  • GitHub:

    👉 github.com/nianyi778/u…

  • NPM 包名:

    👉 @unplugin-version-injector/vite

    👉 @unplugin-version-injector/webpack

    👉 @unplugin-version-injector/rollup


🧭 最后一句话

构建阶段注入项目元信息,不仅能提升「上线可观察性」,还能增强「主题灵活性 + 多项目复用」能力。

一个版本号插件,也能帮你少踩很多坑。