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

Jest+TypeScript测试Forge Jira插件报错Cannot find module '@forge/bridge'求助

问题原因

@forge/bridge采用ES Module格式发布,你当前Jest配置的transformIgnorePatterns默认忽略了所有node_modules下的代码转换,Jest无法直接解析未经过babel转换的ES Module包,因此抛出找不到模块的错误。

可行解决方案

方案1:调整转换忽略规则(加载真实依赖包)

修改package.json中jest配置的transformIgnorePatterns字段,排除对@forge相关包的忽略:

"transformIgnorePatterns": [
  "[/\\\\]node_modules[/\\\\](?!@forge/).+\\.(js|jsx|mjs|cjs|ts|tsx)$",
  "^.+\\.module\\.(css|sass|scss)$"
]

修改后Jest会对@forge开头的依赖包进行正常转换,即可正常加载模块。

方案2:Mock @forge/bridge(更推荐单元测试场景)

单元测试不需要调用真实的Forge运行时接口,直接mock依赖包即可解决问题,同时可以方便测试断言:

  1. 新建mock文件 jest/mocks/forgeBridgeMock.js,根据你实际使用的API补充mock实现:
// 示例mock,可根据实际使用的方法扩展
export const invoke = jest.fn().mockResolvedValue({})
export const getContext = jest.fn().mockResolvedValue({
  localId: 'test-local-id',
  cloudId: 'test-cloud-id',
  moduleKey: 'test-module-key',
  accountId: 'test-account-id'
})
export default { invoke, getContext }
  1. 在jest配置的moduleNameMapper中添加映射:
"moduleNameMapper": {
  "^@forge/bridge$": "<rootDir>/jest/mocks/forgeBridgeMock.js",
  "^.+\\.module\\.(css|sass|scss)$": "identity-obj-proxy"
}

修改后所有对@forge/bridge的导入都会指向mock文件,不需要调整转换规则即可正常运行测试。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 12:48:02