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

VS Code配置Jest测试工具运行时报options.instrument解构TypeError错误

错误原因

该报错是fbjs-scripts包与≥27.x版本的Jest存在API兼容性问题导致的。Jest 27及以上版本重构了转换器传入的参数结构,而旧版fbjs-scripts中的createCacheKeyFunction.js仍在尝试读取旧版参数结构中的options.instrument属性,该属性在新版参数中已不存在,因此触发解构失败报错。

解决方案
  • 方案1:降级Jest到兼容版本
    将所有Jest相关依赖降级到26.x版本,执行以下安装命令:

    npm install jest@26 babel-jest@26 @types/jest@26 --save-dev
    

    安装完成后删除项目下的node_modules文件夹、package-lock.json或yarn.lock文件,重新执行依赖安装命令即可。

  • 方案2:移除fbjs-scripts相关依赖(更推荐)
    若项目无强制依赖fbjs-scripts的自定义转换器配置,可以直接卸载fbjs-scripts包,同时修改jest.config.js中的transform配置,移除引用fbjs-scripts的规则,使用默认的babel-jest或ts-jest即可,示例配置如下:

    module.exports = {
      transform: {
        "^.+\\.(js|jsx|ts|tsx)$": "babel-jest"
      }
    }
    
  • 方案3:临时修复fbjs-scripts源码(仅临时验证使用)
    找到node_modules/fbjs-scripts/jest/createCacheKeyFunction.js文件的第35行,将原解构代码修改为兼容写法:

    // 原代码:const { instrument } = options;
    // 修改为:
    const instrument = options?.instrument ?? false;
    

    该修改仅临时生效,重新安装依赖后会被覆盖,不建议作为长期解决方案使用。

修改配置后可以执行npx jest --clearCache清除Jest缓存,再重新运行测试,避免缓存导致问题复现。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 05:06:02