ReactJs 中的版本控制组件

Versioning components in ReactJs

我正在使用 bootstrap + sass 为 ReactJs 应用程序构建组件库。我的问题是,在开始构建应用程序本身之前思考未来:是否有任何好的方法来控制组件版本?

假设我创建了一个 Jumbotron 组件,当然可以重复使用,但后来我想用新的 "superpowers" 创建一个新版本并逐渐替换旧的,而不必完全改变一次。什么是好的方法?:

这个想法来自 post 一位 Wallmart 开发人员在 "medium" 中编写的 post:

https://medium.com/walmartlabs/how-to-achieve-reusability-with-react-components-81edeb7fb0e0

在某些时候它说:

Components are then published in our private npm registry, meaning that developers can easily install a specific component version, ensuring that their apps won’t suddenly break on upgrade.

这引起了我的注意,因为我正在为类似应用程序的未来社交网络构建 UI,并且我正在尝试 bootstrap 尽可能地组织它。突然我意识到,在我脑海中已经解决了这个问题的情况下开始编码可能是个好主意。

那篇文章的目的,特别是您突出显示的那段内容,是关于在多个项目、团队和应用程序之间共享可重用的组件。允许每个团队在自己的时间升级 npm 版本。

如果我错了请纠正我,但听起来您正在开发一个单一的应用程序,您一次只能从中获得一个 UI 库的一个 npm 版本。

如果您想要在同一个应用程序中使用多个版本的组件,没有什么可以阻止您命名它 <Jumbotron2 />。但请注意,这会迅速增加您的代码的复杂性并使您的程序包膨胀。

另一种选择是确保在添加 'superpowers' 时保持向后兼容性,但这完全取决于它们是什么。

您可以对您的组件使用语义版本控制,并 package.json 在您的应用中升级您的组件。 在这种情况下 - 对于微小的更改(意味着您的组件的 API 被保留)和错误修复,您应该使用最后两个 semver 数字。但对于重大更改 - 使用第一个数字。

https://semver.org/
https://docs.npmjs.com/getting-started/semantic-versioning