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

Jest运行ES6语法测试异常:@storybook/addon-docs导入报错

问题排查方向及解决方案

差异原因

两个测试文件表现不一致的核心原因是:报错的测试文件(或其依赖的业务组件/工具文件)直接/间接引入了@storybook/addon-docs,而正常运行的测试没有引入任何位于node_modules下的ESM格式模块。
你看到的Cannot use import statement outside a module报错,本质是Jest默认只处理项目自身的代码,不会转译node_modules下的文件,而新版的@storybook/addon-docs包默认采用ESM规范发布,Jest无法直接识别ESM的import语法。

排查步骤

  • 首先对比两个测试文件的引入链:确认报错的测试是否导入了storybook相关的文档组件、或者引用了包含storybook docs块的业务组件,正常运行的测试无这类引入。
  • 可以先临时注释报错测试文件中所有和@storybook/addon-docs相关的代码,执行测试验证是否恢复正常,快速定位根因。

修复方案

修改你的Jest配置中的transformIgnorePatterns字段,将@storybook相关的包从转译忽略名单中移除,让babel-jest可以处理ESM格式的storybook代码:

module.exports = {
  // 其余原有配置保持不变
  transformIgnorePatterns: [
    '/node_modules/(?!(@storybook/addon-docs|@storybook/.*)/)',
  ],
}

如果后续遇到其他node_modules下的ESM包同类报错,只需在上面的正则中添加对应的包名即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 03:09:03