vite 无原生 onbuildend 钩子,但可通过插件的 closebundle 钩子(推荐)或 buildend 在生产构建完成后执行自定义逻辑,如修改文件、调用 shell 命令或运行脚本。

Vite 本身不提供类似 Webpack 的 onBuildEnd 原生钩子,但可以通过插件机制在构建完成时执行自定义逻辑。核心方式是利用 Vite 插件的 buildEnd 钩子(该钩子在生产构建结束、Rollup 打包完成后触发),它在 Vite 的生产构建流程中真实可用,且稳定可靠。
使用 buildEnd 插件钩子执行自定义脚本
buildEnd 是 Rollup 兼容钩子,在 Vite 生产构建(vite build)最后阶段被调用,此时所有代码已输出到 dist 目录,资源文件已生成完毕。
你可以这样写一个轻量插件:
// vite.config.js
import { defineConfig } from 'vite'
export default defineConfig({
plugins: [
{
name: 'run-after-build',
closeBundle() {
// 注意:Vite 推荐使用 closeBundle 而非 buildEnd(更准确,确保写入完成)
console.log('✅ 构建已完成,开始执行自定义脚本...')
// 示例:用 Node.js 执行简单操作
const fs = require('fs')
const path = require('path')
const distPath = path.resolve(__dirname, 'dist', 'index.html')
if (fs.existsSync(distPath)) {
const content = fs.readFileSync(distPath, 'utf8')
// 比如注入构建时间戳
const patched = content.replace(
'Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











