Docker部署MERN应用提示找不到react-redux模块该如何解决?
解决方案
你当前使用的React v16.12.0完全兼容react-redux v7.2.5的版本要求(react-redux 7.x仅要求React版本≥16.8.0),不需要优先更新React版本,优先按照以下步骤排查:
- 确认依赖是安装在容器内部而非仅本地安装:很多场景下开发者只在宿主机执行了
npm install,但Docker镜像构建环节没有执行依赖安装,或者构建缓存导致依赖没有更新。检查你的Dockerfile中是否包含RUN npm install指令,确认后可以执行docker build --no-cache不带缓存重新构建镜像。 - 检查目录挂载规则避免覆盖容器内依赖:如果你使用Docker volumes把本地项目目录挂载到容器内,默认会把本地的
node_modules覆盖容器内部安装的node_modules,如果本地的依赖不全就会触发报错。可以在挂载配置中排除node_modules目录,以docker-compose为例:volumes: - ./frontend:/app - /app/node_modules # 该行会让容器优先使用内部的node_modules,不会被本地目录覆盖 - 进入容器验证依赖安装状态:容器运行时执行
docker exec -it <你的容器ID/名称> bash进入容器内部,执行npm ls react-redux检查是否存在该依赖,如果返回空说明容器内确实没有安装该依赖,需要重新检查镜像构建逻辑。 - 确认依赖配置位置:检查完整package.json文件,确认react-redux是写在
dependencies下而非devDependencies下,如果是生产环境构建镜像时默认不会安装devDependencies下的依赖。
内容的提问来源于stack exchange,提问作者Abanoub Magdy
相关产品推荐
相关产品推荐

