调试react导航栏的时发现,
react
webpack
antd
这三个基础框架之间隐含这版本兼容性关系。
也就是说,这几个框架的版本必须协调适应。如果不匹配对应的版本,就会出现各种各样的报错问题,比如导航栏样式问题,比如启动报错问题等等。
尝试了两种版本组合如下
组件 | react | webpack | antd |
版本组合1 | 16.13.1 | 4.42.0 | 4.6.1 |
版本组合2 | 18.2.0 | 5.64.4 | 5.1.6 |
仔细看了一下antd 4.6.1和5.1.6版本的源码,发现里面确实隐含指定了某种react版本
例如
antd-4.6.1的package中含有如下内容:
"devDependencies": { ... "@types/react": "^16.9.21", "@types/react-color": "^3.0.1", "@types/react-copy-to-clipboard": "^4.3.0", "@types/react-dom": "^16.9.5", ... "react": "^16.9.0", ... }, "peerDependencies": { "react": ">=16.9.0", "react-dom": ">=16.9.0" },
antd-4.6.1虽然 peerDependencies部分要求版本react的版本>=16.9.0,但其实devDependencies部分明确要求react版本16.9.0以上了。
再看另一个版本
antd-5.1.6的package中含有如下内容:
"devDependencies": { ... "@types/react": "^18.0.0", "@types/react-color": "^3.0.1", "@types/react-copy-to-clipboard": "^5.0.0", "@types/react-dom": "^18.0.0", "@types/react-highlight-words": "^0.16.4", "@types/react-resizable": "^3.0.0", "@types/react-window": "^1.8.2", ... "react": "^18.0.0", ... }, "peerDependencies": { "react": ">=16.9.0", "react-dom": ">=16.9.0" },
antd-5.1.6虽然 peerDependencies部分要求版本react的版本>=16.9.0,但其实devDependencies部分明确要求react版本18.0.0以上了。
这足以说明,蚂蚁金服的antv研发团队,发布antd的时候,是基于某些react和webpack的版本范围进行调试后才发布antd的版本的。
这绝对有版本依赖隐含关系。
那些学习和使用antd的项目必须注意这个问题,否则就会有一些很奇怪的问题,或者一堆的调试报错问题。
标签:...,react,webpack,types,版本,antd,16.9 From: https://www.cnblogs.com/geektcp/p/17066536.html