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

从webpack迁移到rspack后,Playwright与Jest测试报错求助

解决Webpack迁移Rspack后Jest+Playwright测试报错问题

排查方向与解决方案

1. 对齐同事的Playwright依赖版本

同事环境测试正常,说明特定版本的Playwright能稳定工作,直接锁定对应版本:

  • 让同事执行 npm list @playwright/test playwright,获取这两个包的具体版本号
  • 在你的项目中手动安装指定版本:
    npm install @playwright/test@x.x.x playwright@y.y.y
    
  • 重新安装Playwright浏览器:
    npx playwright install
    

2. 修复依赖树冲突

报错ys.deprecate is not a function和Jest内部错误,大概率是依赖包版本不一致导致的:

  • 用以下命令排查冲突包:
    npm ls deprecate
    npm ls @types/node
    
  • 在package.json中添加resolutions字段锁定冲突包的版本(npm),如果用pnpm则用pnpm.overrides:
    "resolutions": {
      "deprecate": "1.1.0", // 替换为排查到的正常版本
      "@types/node": "18.17.0"
    }
    
  • 重新安装依赖:
    npm install --legacy-peer-deps
    

3. 调整Jest配置适配Rspack环境

迁移到Rspack后,原有的Jest配置可能还依赖Webpack相关工具,需更新:

  • 检查jest.config.js中的transform字段,确保使用的转换器(如ts-jest)与Jest@29版本匹配(ts-jest@29.x对应Jest@29)
  • 移除所有Webpack相关的Jest插件(如jest-webpack),改用Rspack兼容的工具或直接使用babel-jest/ts-jest

4. 清理缓存后重新安装

之前的clean install可能导致依赖树混乱,按以下步骤操作:

# 删除依赖目录和锁文件
rm -rf node_modules
rm package-lock.json
# 清除npm缓存
npm cache clean --force
# 先安装Playwright,再安装其他依赖
npm install @playwright/test@x.x.x && npm install --legacy-peer-deps

5. 排查ESLint@9的影响

ESLint@9版本变动较大,可能与测试工具冲突:

  • 检查eslint-plugin-jest版本,需v27+才能适配ESLint@9,升级命令:
    npm install eslint-plugin-jest@latest
    
  • 暂时修改package.json中的测试脚本,去掉ESLint前置检查,验证是否是ESLint导致的问题:
    "scripts": {
      "test": "jest"
    }
    

内容的提问来源于stack exchange,提问作者Robert Jamborski

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 03:55:11