在Next.js+TypeScript项目中无法运行cypress open命令求助
解决Next.js + TypeScript项目中Cypress运行报错TS5095的问题
问题原因
报错error TS5095: Option 'bundler' can only be used when 'module' is set to 'es2015' or later的核心原因是:项目TypeScript配置中启用了moduleResolution: bundler选项,但module设置未满足es2015或更高版本要求,且Cypress内置的ts-node版本对该配置组合存在兼容问题。
解决方案
方案1:为Cypress单独配置TypeScript规则
在项目的cypress目录下创建或修改tsconfig.json,继承根目录配置的同时覆盖冲突编译选项:
{ "extends": "../tsconfig.json", "compilerOptions": { "module": "esnext", "moduleResolution": "node" }, "include": ["**/*.ts", "**/*.tsx"] }
方案2:在Cypress配置中指定ts-node编译选项
修改项目根目录的cypress.config.ts,注册ts-node时强制设置兼容的module选项:
import { defineConfig } from "cypress"; export default defineConfig({ e2e: { setupNodeEvents(on, config) { require('ts-node').register({ compilerOptions: { module: 'esnext' } }); }, // 可选:添加baseUrl解决"Missing baseUrl"警告 baseUrl: 'http://localhost:3000' }, });
方案3:调整根目录tsconfig全局配置(谨慎使用)
若项目其他模块无冲突,可修改根目录tsconfig.json的compilerOptions,确保配置组合兼容:
{ "compilerOptions": { "module": "esnext", "moduleResolution": "node", // 保留原有其他配置 "baseUrl": "." // 解决"Missing baseUrl"警告 } }
验证修复
执行以下命令重新启动Cypress:
npm run cypress:open
内容的提问来源于stack exchange,提问作者Mohit Nayak
相关产品推荐
相关产品推荐

