NextJS项目中Cypress组件测试加载Spec报错:Cannot GET /__cypress/src/index.html
解决NextJS+Cypress组件测试的404错误(Cannot GET /__cypress/src/index.html)
以下是几个针对性的排查和解决方法:
- 检查Next.js版本兼容性:Cypress组件测试要求Next.js版本在12及以上,若当前版本过低,升级到兼容版本。
- 显式指定Next.js配置路径:在cypress.config.js中添加
nextConfigFile字段,明确指向项目的next.config.js文件,即使使用默认配置也可显式声明:
import { defineConfig } from 'cypress' export default defineConfig({ component: { devServer: { framework: 'next', bundler: 'webpack', nextConfigFile: './next.config.js' } } })
- 清除Cypress缓存:执行命令
npx cypress cache clear清除旧缓存文件,之后重新启动测试。 - 校验测试文件规范:确保测试文件以
.cy.js、.cy.ts、.cy.jsx或.cy.tsx结尾,且放置在cypress/component目录(或自定义配置的测试目录)下。 - 暂时禁用静态资产优化:若next.config.js中配置了
assetPrefix等静态资源相关项,尝试注释后重新测试,排查是否为路径配置冲突导致的404。 - 重装依赖:删除
node_modules目录和package-lock.json/yarn.lock文件,重新执行npm install或yarn install,确保依赖安装完整无损坏。
内容的提问来源于stack exchange,提问作者user19605350
相关产品推荐
相关产品推荐

