Ant Design v5升级后Rollup构建组件库出现genTable函数错误
解决Ant Design Table v5.5.0 Rollup构建组件库后
genTable is not a function错误 问题分析
报错核心是rc-table的genTable方法无法被识别,结合组件库内Storybook测试正常、node_modules中无rc-table的现象,根源在于依赖解析或Rollup打包配置导致rc-table未被正确引入到最终产物中。
解决方案
1. 显式安装rc-table依赖
Ant Design v5.x中rc-table是核心依赖,但部分包管理器或依赖解析策略可能不会自动拉取深层依赖,需手动安装:
# npm npm install rc-table@^7.2.0 --save # yarn yarn add rc-table@^7.2.0
注意:版本号需匹配antd v5.5.0的依赖要求,可查看antd包内的package.json确认具体版本范围。
2. 调整Rollup打包配置
作为第三方组件库,需确保antd和rc-table不被打包进产物,同时声明为peer依赖让使用方自行安装:
- 在Rollup配置文件中添加
external:
export default { // 其他配置项 external: ['react', 'react-dom', 'antd', 'rc-table'], output: { // 输出配置 globals: { react: 'React', 'react-dom': 'ReactDOM', antd: 'antd', 'rc-table': 'RcTable' } } };
- 在组件库的package.json中声明peerDependencies:
"peerDependencies": { "react": "^18.0.0", "react-dom": "^18.0.0", "antd": "^5.5.0", "rc-table": "^7.2.0" }
3. 清理缓存并重新构建
缓存残留可能导致依赖或打包产物异常,执行以下步骤:
# 组件库项目 rm -rf node_modules package-lock.json yarn.lock npm install npm run build # 使用组件库的业务项目 rm -rf node_modules package-lock.json yarn.lock npm install npm run dev
4. 验证版本兼容性
确认安装的rc-table版本与antd v5.5.0兼容:
- 查看antd包内的package.json(路径:
node_modules/antd/package.json)中的rc-table依赖版本,确保手动安装的版本在该范围内。
内容的提问来源于stack exchange,提问作者Ori Roll
相关产品推荐
相关产品推荐

