baidu / amis

前端低代码框架,通过 JSON 配置就能生成各种页面。
https://baidu.github.io/amis/
Apache License 2.0
17.1k stars 2.48k forks source link

建议 amis 对内部依赖使用精确版本号以避免版本不一致问题 #10781

Open lishengliang74 opened 1 month ago

lishengliang74 commented 1 month ago

问题描述:

在当前的 amis 包管理实践中,amis 包的 package.json 文件中对于其内部依赖(如 amis-core)的版本指定采用了宽松的范围版本(例如 "amis-core": "^6.5.0")。这种做法虽然允许在 amis 升级时自动包含 amis-core 的兼容更新,但在某些情况下(如特定项目锁定 amis 到某个具体版本时),会导致 amis-core 被错误地升级到与 amis 不完全兼容的版本。

具体问题实例:

在我的项目中,我明确指定了 amis 的版本为 6.5.0,然而,在执行安装操作时,由于 amis 的 package.json 中对 amis-core 的依赖声明为 "amis-core": "^6.5.0",导致 amis-core 被安装为 6.7.0 版本。由于 amis 和 amis-core 之间的版本不一致,项目运行时出现了多种警告和潜在的不兼容问题,影响了项目的稳定性和可维护性。

建议解决方案:

为避免此类版本不一致问题,建议 amis 团队在 amis 的 package.json 文件中,对其内部依赖(如 amis-core、amis-ui 等)采用精确的版本号进行声明,例如将 "amis-core": "^6.5.0" 改为 "amis-core": "6.5.0"。这样做可以确保在特定版本的 amis 下,其内部依赖也保持在完全兼容的版本,从而避免不必要的版本冲突和兼容性问题。

2betop commented 1 month ago

是应该这样,但是目前 lerna 没有相关配置。还需研究一下怎么处理