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

运行Cucumber场景时出现MODULE_NOT_FOUND错误求助

解决方案:Cucumber MODULE_NOT_FOUND 错误修复

问题根源拆解

  1. 路径拼写错误:npm脚本中写成了node-modules,实际正确路径是node_modules,直接导致找不到Cucumber执行文件
  2. 依赖版本冲突:同时安装了新版@cucumber/cucumber@9.x和旧版cucumber@6.x,两个包的文件结构和执行逻辑相互干扰
  3. ES模块兼容性问题:package.json设置了"type": "module",但ts-node默认以CommonJS模式运行,和Cucumber的执行脚本不兼容

分步修复操作

1. 清理冲突依赖

卸载旧版cucumber包,仅保留新版官方包:

npm uninstall cucumber

2. 修正npm脚本

修改package.json中的scripts字段,修正路径拼写,同时配置ts-node以ES模块模式运行:

{
  "type": "module",
  "files": [
    "src",
    "cucumber.js"
  ],
  "scripts": {
    "cucumber": "npx ts-node --esm node_modules/@cucumber/cucumber/bin/cucumber.js -p default"
  },
  "dependencies": {
    "@cucumber/cucumber": "^9.0.1",
    "chromedriver": "^115.0.1",
    "ts-node": "^10.9.1",
    "typescript": "5.1.6"
  }
}

说明:--esm参数让ts-node匹配项目的ES模块配置,避免模块加载模式冲突

3. 重新安装依赖

删除旧依赖文件和锁文件,确保依赖环境干净:

rm -rf node_modules package-lock.json
npm install

4. 重新运行测试命令

npm run cucumber -- features --name say-hello

额外验证项

  • 确认项目根目录下存在cucumber.js配置文件(package.json中已声明该文件,必须存在)
  • 若仍有问题,检查tsconfig.json是否开启ES模块支持:
    {
      "compilerOptions": {
        "module": "ESNext",
        "moduleResolution": "NodeNext"
      }
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 09:15:12