You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置vite build在构建前自动执行vitest单元测试?

让Vite构建前自动运行Vitest测试的方法

Vite本身的build配置里确实没有直接提供前置执行测试的选项,但可以通过以下几种方式实现:

1. 修改package.json的scripts命令

最简单的方式是直接在构建命令前拼接测试命令,利用shell的顺序执行逻辑(只有测试成功才会继续后续步骤):

{
  "scripts": {
    "test": "vitest run", // 以无头模式执行所有单元测试,适合生产构建/CI环境
    "build": "npm run test && vite build"
  }
}

执行npm run build时,会先运行vitest run,所有测试通过后才会启动vite build。

2. 自定义Vite插件实现钩子触发

如果需要更灵活的控制(比如根据环境决定是否执行测试),可以编写简单的Vite插件,利用buildStart钩子在构建启动前执行测试:

// vite.config.js
import { defineConfig } from 'vite';
import { execSync } from 'child_process';

export default defineConfig({
  plugins: [
    {
      name: 'pre-build-test',
      buildStart() {
        // 同步执行测试命令,输出直接继承当前终端,测试失败则终止构建
        execSync('vitest run', { stdio: 'inherit' });
      }
    }
  ]
});

这种方式会在每次执行vite build时自动触发测试流程,测试不通过则构建直接终止。

注意事项

  • 确保vitest run命令能正确执行所有测试,且测试失败时返回非零退出码,这样shell或Node的execSync才能捕获失败并终止后续流程。
  • CI环境中更推荐第一种scripts拼接的方式,逻辑直观且便于维护。

内容的提问来源于stack exchange,提问作者Eria

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 18:10:35