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

Docker容器运行JEST时报Jest not found错误的问题求助

错误原因
  1. 核心触发原因是损坏的package-lock.json文件:本地测试时损坏的锁文件被Dockerfile中的COPY . .指令同步到容器内,npm install执行时会优先读取锁文件的配置,损坏的内容导致jest等依赖没有被正常安装到容器的项目依赖目录中。
  2. 潜在配置错误:你提供的package.json中依赖字段误写为大写的Dependencies,npm标准依赖字段为全小写的dependencies,如果字段名错误npm会识别不到依赖配置,也会导致依赖安装失败,可同步检查是否为书写笔误。
  3. 你观察到/usr/local/lib/node_modules/路径下找不到jest属于正常情况:默认npm install会将依赖安装到当前项目的/app/node_modules目录而非全局路径,package.json的scripts执行时会自动查找项目本地node_modules下的可执行文件,无需全局安装jest。
  4. 本地运行正常的原因:本地环境之前已经完成过依赖安装,甚至可能全局安装过jest,因此不受锁文件损坏/配置错误的影响,而容器是全新干净环境,所有依赖都需要重新安装,问题因此暴露。
修复方案
  • 首先删除本地项目根目录下损坏的package-lock.json文件,建议同时删除本地的node_modules目录,避免旧缓存文件被复制到容器内。
  • 检查package.json的依赖字段,确保为全小写的dependencies,修正大小写错误。
  • 可以在项目根目录新增.dockerignore文件,写入以下内容,过滤不必要的文件复制:
node_modules
package-lock.json
npm-debug.log
  • 重新执行docker build构建镜像,之后启动容器即可正常执行npm test指令。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 21:30:00