Docker部署React+Django至Ubuntu EC2:React报Vite未找到错误
解决React+Django容器化部署的"vite not found"错误
问题根源
你在docker-compose.yml的frontend服务中挂载了本地的node_modules目录到容器内的/frontend/node_modules,这会直接覆盖Docker构建阶段通过npm install安装的所有依赖。如果本地环境的node_modules没有包含vite(或依赖版本不兼容),容器就会出现找不到vite的错误——而你本地运行正常,是因为本地已经正确安装了vite。
解决步骤
修改docker-compose配置
打开你的docker-compose.yml,找到frontend服务的volumes配置,删除挂载node_modules的那一行:volumes: - ./frontend_react/secure-pass-keeper/src:/frontend/src - ./frontend_react/secure-pass-keeper/public:/frontend/public # 删掉下面这行 # - ./frontend_react/secure-pass-keeper/node_modules:/frontend/node_modules清理旧容器并重新构建
执行以下命令彻底清理旧容器、卷,然后重新构建启动服务:docker-compose down -v && docker-compose up --build可选:本地开发热重载兼容
如果你需要保留src和public的挂载以实现热重载,确保本地前端目录已经执行过npm install安装依赖,但不要挂载容器的node_modules——容器会使用自身构建阶段安装的依赖,避免本地和容器依赖冲突。
额外排查点
- 检查前端项目的
package.json,确认vite已经被添加到devDependencies中 - 确保Dockerfile中的
npm install没有使用--production参数(该参数会跳过安装dev依赖,而vite通常是dev依赖)
内容的提问来源于stack exchange,提问作者Amol_G
相关产品推荐
相关产品推荐

