Jest测试找不到axios,安装依赖后启动项目报validateOptions is not a function
问题原因
- 初始
Cannot find module 'axios'报错的核心是测试文件显式引入了axios,但项目依赖中未安装axios本身,你只安装了依赖axios的axios-mock-adapter,无法解决axios缺失的问题。 - 后续出现
validateOptions is not a function报错的常见原因有三个:
- 安装
axios-mock-adapter时自动拉取的axios版本与你项目现有依赖(如webpack、jest、封装的request工具等)要求的axios版本不兼容,出现版本冲突。 - 依赖安装过程中lock文件(package-lock.json/yarn.lock)出现版本锁错误,即便卸载
axios-mock-adapter,版本不匹配的axios仍残留在node_modules中未被清除。 - 依赖缓存未清理,导致重复安装时始终使用损坏的依赖包。
解决步骤
- 第一步:清理损坏的依赖和缓存
执行以下命令删除旧依赖、锁文件并清理npm缓存:
rm -rf node_modules package-lock.json npm cache clean --force
Windows环境可手动删除node_modules文件夹和package-lock.json文件后再执行缓存清理命令。
- 第二步:安装匹配版本的依赖
优先安装生产环境需要的axios,再安装测试用的axios-mock-adapter,可指定经过兼容性验证的版本避免冲突:
npm install axios@1.6.0 --save npm install axios-mock-adapter@1.22.0 --save-dev
如果你的项目有明确要求的axios版本,将上述命令中的版本号替换为项目指定版本即可。
- 第三步:验证修复效果
先执行npm install确认所有依赖安装完成,先运行测试命令确认初始的axios缺失报错已解决,再执行npm start启动项目验证是否还存在validateOptions is not a function报错。
内容的提问来源于stack exchange,提问作者joseluke
相关产品推荐
相关产品推荐

