ReactJs 中的版本控制组件
Versioning components in ReactJs
我正在使用 bootstrap + sass 为 ReactJs 应用程序构建组件库。我的问题是,在开始构建应用程序本身之前思考未来:是否有任何好的方法来控制组件版本?
假设我创建了一个 Jumbotron 组件,当然可以重复使用,但后来我想用新的 "superpowers" 创建一个新版本并逐渐替换旧的,而不必完全改变一次。什么是好的方法?:
- 同一库中每个组件的版本? (类似于:
<Jumbotron v="2" />
或 <Jumbotron2 />
)
- @import 新版本的新库?
- 根本不需要版本控制?
这个想法来自 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
我正在使用 bootstrap + sass 为 ReactJs 应用程序构建组件库。我的问题是,在开始构建应用程序本身之前思考未来:是否有任何好的方法来控制组件版本?
假设我创建了一个 Jumbotron 组件,当然可以重复使用,但后来我想用新的 "superpowers" 创建一个新版本并逐渐替换旧的,而不必完全改变一次。什么是好的方法?:
- 同一库中每个组件的版本? (类似于:
<Jumbotron v="2" />
或<Jumbotron2 />
) - @import 新版本的新库?
- 根本不需要版本控制?
这个想法来自 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