React项目运行npm test出现Jest execute is not a function报错如何解决
问题原因
该报错本质是react-scripts内置的jest版本与你手动额外安装的独立jest版本不兼容,create-react-app脚手架自带的react-scripts已经封装了适配好版本的jest、react-testing-library等测试依赖,不需要用户额外手动安装jest,手动安装的版本和内置版本冲突就会触发该类型错误。
解决步骤
- 第一步:卸载所有手动安装的独立jest相关依赖
执行对应包管理工具的卸载命令:
npm用户执行:npm uninstall jest @types/jest
yarn用户执行:yarn remove jest @types/jest - 第二步:清理本地缓存与残留文件
删除项目根目录下的node_modules文件夹、package-lock.json(npm用户)或yarn.lock(yarn用户)文件,执行缓存清理命令:
npm用户执行:npm cache clean --force
yarn用户执行:yarn cache clean - 第三步:重新安装项目依赖
执行npm install或yarn install,此时会自动安装react-scripts内置匹配版本的jest,不会出现版本冲突。 - 第四步:验证测试命令
执行npm test即可正常启动测试服务,未编写测试用例时会提示找不到测试文件,属于正常状态。
注意事项
- 后续不要单独升级jest版本,保持与react-scripts内置版本一致即可,如确实需要升级jest,需同步升级react-scripts到匹配的版本
- 自定义jest配置可直接在package.json中新增
jest字段配置,无需额外安装jest
内容的提问来源于stack exchange,提问作者Tomas Mota
相关产品推荐
相关产品推荐

