Cannot find module 'jest-cli'基本等于Jest package路径填错:WebStorm默认查全局jest,但项目用本地node_modules;需确保jest.config.js或package.json含"test": "jest",npm/yarn项目设为node_modules/.bin/jest,pnpm项目用node_modules/jest/bin/jest.js,改后必须重启IDE。

WebStorm 运行 Jest 报 Cannot find module 'jest-cli'
这基本等于路径填错了,不是没装 Jest,而是 WebStorm 找错了地方。它默认可能去查全局 jest,但你项目用的是本地 node_modules 里的版本,而全局要么没装,要么版本不兼容。
必须确认两件事:
-
jest.config.js或package.json的scripts.test字段存在(二者任一即可),否则 WebStorm 根本不会加载 Jest 运行器 - Settings → Tools → Jest → Jest package 必须设为:
- npm / yarn 项目:
node_modules/.bin/jest(相对路径,不是绝对路径) - pnpm 项目:
node_modules/jest/bin/jest.js(因为.bin/jest是坏链接) - 强烈建议勾选 Automatic 模式,但改完必须重启 WebStorm 才生效
- npm / yarn 项目:
Vue 项目里 Vitest 边栏图标点击后无反应或跑全量测试
这是 WebStorm 2025.2+ 和 Vitest 4.07+ 的已知参数拼接 bug:IDE 自动注入的 --testNamePattern 命令带了多余空格和引号,比如生成出 --testNamePattern = "^my test$",而 Vitest 只认 --testNamePattern="^my test$",解析失败就跳过匹配逻辑。
临时绕过方法:
- 别点边栏绿色三角,右键测试文件 → 选 Run “xxx.test.ts”(走文件级运行,不拼该参数)
- 长期修复:进 Run → Edit Configurations → Vitest,在
Vitest options栏手动填入--testNamePattern="^your test name$",并勾选Use --testNamePattern from editor(如果选项存在) - 验证是否修好:点开配置页的 Modify options,看最终命令行里
--testNamePattern=后面是否紧贴双引号、中间无空格
Vitest 调试时断点不命中、提示 “No tests found”
这不是代码问题,是 WebStorm 用错了启动模式。普通 Debug 按钮走的是 Node.js 原生调试流程,完全绕过了 Vitest 的环境初始化——environment: "jsdom" 不生效、vi.mock 不注册、defineComponent 找不到,测试函数压根没被加载。
必须用专用调试入口:
- 在测试函数旁的绿色三角图标上右键 → 选 Debug “test name”(注意括号里是空的,不是普通 Debug)
- 确保
vitest.config.ts中的environment与你要调试的内容一致:组件测试用"jsdom",纯工具函数可用"node" - 检查
package.json是否含"type": "module"—— Vitest 4+ 依赖它来正确加载vitest.mjs入口
覆盖率视图空白或 Run with Coverage 没反应
覆盖率不是开关一开就出来的,它卡在三处:Jest/Vitest 是否真生成了报告、路径是否可写、WebStorm 是否能解析。静默失败很常见。
关键检查点:
-
jest.config.js或vitest.config.ts里不能有collectCoverage: false;coverageDirectory必须指向一个 WebStorm 有写权限的目录(默认coverage即可) - 若配置了
coverageReporters: ["clover"]或["json-summary"],WebStorm 解析不了,会显示空白——只保留["html", "lcov"]最稳妥 - Vitest 用户还要确认
vitest.config.ts中启用了coverage: { enabled: true },且没被环境变量(如VITEST_COVERAGE_ENABLED=false)覆盖
最常被忽略的是重启:所有配置变更(尤其是 Jest package 路径、Vitest config file 路径、Node 解释器版本)都必须重启 WebStorm 才真正生效。IDE 不会热重载这些底层运行链路。


















