WebDriverIO配置Cucumber+TS执行测试时@wdio/cucumber-framework初始化失败
报错根因
触发这个错误的核心是**@wdio/cucumber-framework 与 @cucumber/cucumber 版本不兼容**:
早期版本的 @wdio/cucumber-framework 会直接引用 @cucumber/cucumber 包内部的子路径 ./lib/formatter/helpers/event_data_collector,但 7.x 以上版本的 @cucumber/cucumber 在 package.json 的 exports 配置中收紧了对外暴露的模块边界,这个内部路径已经不再对外公开,因此抛出 ERR_PACKAGE_PATH_NOT_EXPORTED 错误。这个问题和你写的 tsconfig.json、项目自动生成的示例文件没有任何关系。
修复操作步骤
- 先清理本地依赖残留
删除 node_modules 目录和依赖锁文件,避免旧版本缓存导致的冲突:
类Unix/macOS/Linux系统执行:rm -rf node_modules package-lock.json yarn.lock
Windows PowerShell 执行:Remove-Item -Recurse -Force node_modules, package-lock.json, yarn.lock - 安装版本适配的依赖组合
不要手动单独拉取 @cucumber/cucumber 的最新版,直接同步安装最新版的wdio cucumber框架和官方适配的cucumber核心包:npm i --save-dev @wdio/cucumber-framework@latest @cucumber/cucumber@latest
最新发布的 @wdio/cucumber-framework 已经完成了对新版 @cucumber/cucumber 的适配,不会再引用已经被移除的内部子路径。 - 重新启动测试验证
执行测试启动命令:npx wdio run wdio.config.ts,框架初始化阶段的报错就会直接消除。
避坑提醒
- 项目初始化完成后,不要手动单独升级 @cucumber/cucumber 的大版本,否则会再次触发同类模块导出兼容问题
- 你当前编写的 tsconfig.json 不需要做任何调整,和本次报错无关联
- 不要尝试通过修改 node_modules 内的包配置绕过 exports 校验,安装版本匹配的依赖是最稳定的修复方案
内容的提问来源于stack exchange,提问作者kwishna
相关产品推荐
相关产品推荐

