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

Vue 2.7组合式API单元测试报错:defineProps未定义

Vue 2.7组合式API Jest测试报defineProps is not defined的解决办法

我在Vue 2.7项目中使用组合式API,项目构建、代码检查和类型校验均正常,但运行Jest单元测试时组件挂载失败,抛出错误:

ReferenceError: defineProps is not defined

报错堆栈信息如下:

49 | }
  50 |
> 51 | const props = defineProps<Props>();
     | ^
  52 | const { selectedAgreement, agreements, scopeId } = props;
  53 |
  54 | const t = translateMixin.methods.t;

  at Object.<anonymous> (components/oe-dirigent-top-row.vue:51:1)
  at Object.<anonymous> (b2b-oe-dirigent.vue:7:1)
  at Object.<anonymous> (b2b-oe-dirigent.spec.ts:1:1)
  at TestScheduler.scheduleTests (../../../common/temp/node_modules/.pnpm/@jest+core@27.5.1/node_modules/@jest/core/build/TestScheduler.js:333:13)
  at runJest (../../../common/temp/node_modules/.pnpm/@jest+core@27.5.1/node_modules/@jest/core/build/runJest.js:404:19)
  at _run10000 (../../../common/temp/node_modules/.pnpm/@jest+core@27.5.1/node_modules/@jest/core/build/cli/index.js:320:7)
  at runCLI (../../../common/temp/node_modules/.pnpm/@jest+core@27.5.1/node_modules/@jest/core/build/cli/index.js:173:3) 

当前环境:大型Rush monorepo,Vue 2.7,测试依赖vue/test-utils@1.1.3、@vue/vue-jest@27.0.0-alpha.4


解决步骤

  • 升级@vue/vue-jest版本
    当前使用的27.0.0-alpha.4为测试版本,对Vue 2.7新增的组合式API语法糖(如defineProps)支持不足。直接升级到^27.0.0正式版即可,该版本已适配Vue 2.7的编译时宏处理。

  • 确保Jest的transform配置正确
    在jest.config.js中,确认.vue文件的转换器指向@vue/vue-jest,避免其他工具干扰编译:

    module.exports = {
      transform: {
        '^.+\\.vue$': '@vue/vue-jest',
        '^.+\\.ts$': 'ts-jest' // 若使用TypeScript,保留此配置
      },
      // 其他Jest配置...
    };
    
  • 临时方案:全局模拟defineProps
    如果暂时无法升级依赖,可在Jest初始化文件中添加全局模拟:

    1. 创建jest.setup.js文件:
    global.defineProps = (props) => props;
    
    1. 在jest.config.js中指定该文件:
    module.exports = {
      setupFilesAfterEnv: ['./jest.setup.js'],
      // 其他配置...
    };
    

    注意:此为临时规避方案,优先推荐升级依赖。

  • 确认Vue版本一致性
    检查项目中安装的Vue版本是否为^2.7.0,避免因版本不一致导致兼容性问题。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 19:05:32