安装del@7.0.0后Cypress 12.5无法启动,如何解决?
解决Cypress导入del@7.0.0后无法启动的问题
问题原因
del 7.0.0是纯ES模块(ESM),而Cypress 12.5默认的配置文件(cypress.config.js)使用CommonJS语法,无法通过require()加载ESM模块,这会导致Cypress启动时触发模块加载错误,进而无法正常运行。
解决方案
有两种可行的解决方式,可根据项目配置习惯选择:
方式1:将Cypress配置改为ESM格式
- 将
cypress.config.js重命名为cypress.config.mjs - 把导入del的语句替换为ESM语法:
import del from 'del' - 配置文件的导出也需改为ESM格式,完整示例:
import { defineConfig } from 'cypress' import del from 'del' export default defineConfig({ e2e: { setupNodeEvents(on, config) { on('after:spec', (spec, results) => { if (results?.video && results.stats.failures === 0 && results.stats.tests > 0) { // 删除测试通过的用例对应的视频文件 return del(results.video) } }) }, }, })
方式2:降级del到CommonJS兼容版本
如果不想修改配置文件格式,可以降级del到支持CommonJS的版本:
- 卸载当前版本:
npm uninstall del - 安装兼容CommonJS的旧版本(如6.1.1,该版本同时支持ESM和CommonJS):
npm install del@6.1.1 --save-dev - 继续使用原来的
const del = require('del')语句,无需修改其他配置代码。
验证
修改完成后重新启动Cypress,即可正常选择浏览器并运行测试,同时测试通过的视频文件会被自动删除。
内容的提问来源于stack exchange,提问作者Mag
相关产品推荐
相关产品推荐

