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

React+Webpack+TypeScript Docker构建仅src/api模块找不到问题排查

问题排查方向

1. 大小写与Git文件追踪问题

  • Linux(Docker容器基于Linux)严格区分文件名大小写,但Windows/macOS默认不区分。检查代码中导入src/api文件的语句大小写,是否与实际文件/目录的大小写完全一致,比如代码写import xx from './Api/user'但实际是api/user.ts,本地能运行但Docker环境会报错。
  • 确认Git仓库中src/api的文件大小写是否正确,本地修改文件名大小写后,Git可能未自动追踪变更,导致CI拉取的代码结构与本地不一致。

2. Docker文件复制与忽略规则检查

  • 查看.dockerignore文件,确认没有忽略src/api目录或其中的.ts/.tsx文件,避免COPY . .时漏掉该目录的文件。
  • 在Docker构建步骤中添加临时命令(如RUN ls -la src/api),查看容器内是否存在该目录及对应文件,验证文件是否被完整复制。

3. TypeScript配置的路径扫描差异

  • 检查tsconfig.json的include字段,是否明确包含src/api/**/*。如果include仅覆盖了components、types等目录,本地IDE或Webpack的额外处理可能识别到api文件,但CI构建时TS会严格按配置扫描,导致找不到模块。
  • 在CI构建中执行tsc --showConfig,对比本地和CI环境的TS配置输出,查看baseUrl、paths等解析规则是否存在差异,比如因工作目录不同导致路径解析偏差。

4. Webpack生产环境配置差异

  • 检查Webpack生产环境配置(如webpack.prod.js)是否有特殊规则或插件影响src/api目录的处理,比如某些loader或插件是否意外排除了该目录。
  • 对比本地与CI的Webpack构建命令,确认CI是否使用了不同的配置文件或额外参数,导致构建逻辑差异。

5. 依赖安装的缓存与完整性问题

  • 若CI启用了依赖缓存,尝试删除缓存的node_modules和锁文件(package-lock.json/yarn.lock),重新执行依赖安装,排除缓存的依赖不兼容或缺失问题。
  • 确认@types/*等类型依赖是否在CI环境中完整安装,避免因缺失类型声明导致TS报错。

6. Docker容器内文件权限问题

  • 检查src/api目录在Docker容器内的文件权限,若权限为不可读,TS编译器无法读取文件会触发报错。可在Docker构建步骤中添加RUN chmod -R 755 src/api修复权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 19:22:39