react打包发到线上报错Minified React error #130

开发过程中遇到一个问题,记录一下

本地打包发布正常,发测试环境正常,可是通过Jenkins打包发布线上报错

报错信息

index-67fbbd81.js:39 Error: Minified React error #130; visit https://reactjs.org/docs/error-decoder.html?invariant=130\&args\[\]=undefined\&args\[\]= for the full message or use the non-minified dev environment for full errors and additional helpful warnings.

打开报错信息发现报错

由于这次更新内容比较多,开始怀疑是不是本地代码问题,

组件undefined一般是引入导出组件名问题。让cursor检查了一遍代码,发现代码没有问题。

又从git上重新拉取代码,下载依赖,运行,也是没问题。

本地生产环境没问题,线上报错,说明问题很可能出在环境差异上。

对比了一下Jenkins上的node版本,react版本等,发现版本号一致。

猜想可能是使用本地包的问题,在服务器上单独下载了依赖,导致线上本地依赖包不一致。

原本的Jenkins打包命令

复制代码
yarn install
yarn build

yarn install 不是严格模式,可能会根据 semver 自动升级依赖,导致和本地 node_modules 不一致。

如果 Jenkins 的 node_modules 目录有残留,可能会混入旧依赖,导致打包产物和本地不一样。

更改后的Jenkins命令

复制代码
rm -rf node_modules
yarn cache clean
yarn install --frozen-lockfile
yarn build

rm -rf node_modules:彻底清理依赖,避免残留

yarn cache clean:清理 yarn 缓存

yarn install --frozen-lockfile:严格按照 yarn.lock 安装依赖,保证和本地一模一样

yarn build:正常打包

这样可以100% 保证 Jenkins 构建出来的依赖和本地完全一致,不会因为依赖包差异导致线上 undefined 或 React #130 错误。

很多线上"本地没问题,线上报错"的根因,都是因为 CI/CD 没有严格依赖锁定

接下来重新用用Jenkins打包----正常-----线上-----正常!

完美解决!

相关推荐
半旧5184 分钟前
【Java Web02】WEB服务器内部实现技术揭秘
java·服务器·前端
拿本唠嗑AI研究12 分钟前
现代前端架构爬虫指南:从静态页面到 React/Vue 单页应用
前端·爬虫·架构
独孤九剑打醒他30 分钟前
【原创开源】双层Master‑Worker软硬协同调度架构:从根源解决分布式数据一致性难题
前端·嵌入式硬件·架构·前端框架·硬件工程
程序员黑豆6 小时前
Java包装类:基本类型与对象的桥梁
java·前端·ai编程
bugcome_com9 小时前
JWT 知识小课堂:从入门到精通,一文吃透 JSON Web Token
前端·json
To_OC9 小时前
写了三天 Next.js,我的 React 世界观被拆了又装回去
前端·全栈·next.js
独泪了无痕9 小时前
viewer.js 安装与配置指南:实现图片预览功能
前端·vue.js
Fluxart.ai11 小时前
电商商品图审核怎么自动化?规则引擎、人工复核与发布门禁
java·前端·自动化
why技术12 小时前
AI 写的文章,可能都带着手敲一遍都去不掉的“隐形水印”。
前端·人工智能·后端
愚公搬代码12 小时前
【愚公系列】《Android应用案例开发大全》016-LBS类应用掌上杭州(辅助工具类的开发)
android·前端