Renovate 自动升级依赖后 React 组件报错怎么办?
我用 Renovate 自动更新了项目依赖,结果一个原本正常的 React 组件突然报错说 “React is not defined”,但本地开发时完全没问题。是我配置错了还是需要额外处理?
出问题的组件代码很简单,就是个基础的函数式组件:
import React from 'react';
const Button = ({ label }) => {
return <button>{label}</button>;
};
export default Button;
奇怪的是,构建产物里确实没打包 React,但以前都没这问题,就这次 Renovate 升级 @babel/preset-react 和 react 本身之后才出现的。
.babelrc或babel.config.js里加:或者如果你用的是旧版(不推荐但常见),至少确保
@babel/plugin-transform-react-jsx没被 Renovate 升级后误删,或者手动加回:Renovate 升级 @babel/preset-react 后默认 JSX runtime 改成了 automatic,但你项目里没配
import React也没配 runtime,所以构建时 React 被 tree-shaking 掉了,本地 dev server 因为 devtools 或缓存没触发问题,一打包就崩。