yarn build执行报错但yarn start正常 线上服务器构建失败求助
React 应用仅线上环境
yarn build 报错的常见原因 - 环境版本差异
线上服务器的Node.js、yarn版本和本地设备不一致,部分依赖对包管理器或Node版本有严格要求,跨大版本(如Node 16 和 Node 18、yarn 1.x 和 yarn 3+) 时极易出现构建兼容问题。建议核对所有环境的node -v、yarn -v输出,保持版本完全对齐。 - 环境变量差异
线上环境的环境变量配置和本地不一致,部分代码逻辑依赖特定环境变量,yarn start属于开发模式,对缺失、格式错误的环境变量容错性更高,生产构建时会触发严格校验或打包逻辑异常。建议排查线上NODE_ENV以及项目自定义的环境变量配置,是否和本地构建环境一致。 - 系统平台差异
若本地设备为Windows/macOS,线上服务器为Linux,会存在两类问题:一是部分依赖带有平台相关的二进制包,不同平台拉取的包存在兼容差异;二是本地系统文件路径大小写不敏感,代码中大小写不匹配的引入在本地可正常运行,到Linux大小写敏感的文件系统下会触发路径找不到报错。建议检查代码中所有文件引入的路径大小写是否和实际文件完全一致,同时确认线上安装依赖时没有平台相关的报错输出。 - 内存限制
线上服务器可用内存低于生产构建要求,React生产构建需要执行压缩、tree shaking等重资源消耗操作,内存占用远高于开发模式,内存不足会导致构建进程被强制终止。建议查看构建报错日志中是否有OOM(内存溢出)相关提示,可尝试调整Node内存上限后重新构建:NODE_OPTIONS=--max_old_space_size=4096 yarn build - 生产构建严格校验规则差异
部分项目配置了开发模式禁用、生产模式启用的严格校验,比如TypeScript严格类型检查、ESLint生产级别报错规则、CSS/资源路径严格校验等,本地开发模式不会触发校验报错,生产构建时才会抛出错误。建议完整提取线上构建的报错日志,定位到具体的报错代码或规则项后针对性修复。 - 网络/依赖源差异
线上服务器的依赖安装源和本地不同,拉取的依赖版本存在异常,比如镜像源同步延迟导致的包不完整、版本偏差,即使删除lock文件重装也可能拉到异常包。建议核对线上安装的依赖版本是否和本地成功构建的依赖版本完全一致。
内容的提问来源于stack exchange,提问作者Maulik Shah
相关产品推荐
相关产品推荐

