在ReactJs中版本化组件

时间:2018-02-06 12:27:56

标签: twitter-bootstrap reactjs versioning

我正在使用bootstrap + sass为ReactJs应用程序构建组件库。我的问题是,考虑将来和开始构建应用程序之前:有没有任何好的方法来版本化组件?

让我们说我创建了一个Jumbotron组件,当然可以重复使用,但后来我想创建一个新版本的超级电源"并逐步取代旧的,而不必同时做出重大改变。什么是好方法?:

  • 同一个库中每个组件的版本? (例如:<Jumbotron v="2" /><Jumbotron2 />
  • @import较新版本的新库?
  • 根本不需要版本化吗?

这个想法来自Wallmart开发者在&#34; medium&#34;中写的帖子:

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

在某些时候它说:

  

然后在我们的私有npm注册表中发布组件,这意味着开发人员可以轻松安装特定的组件版本,确保他们的应用程序在升级时不会突然中断。

这引起了我的注意,因为我正在为未来的社交网络(如应用程序)构建UI,而我正试图尽可能有条理地引导它。突然间我意识到开始使用已经解决的编码可能是一个好主意。

2 个答案:

答案 0 :(得分:2)

该文章的目的,特别是您突出显示的那一段,是围绕多个项目,团队和应用程序共享可重用组件。允许每个团队在他们自己的时间内升级npm版本。

如果我错了,请纠正我,但听起来你正在开发一个单独的应用程序,你一次只能拥有一个npm版本的UI库。

如果您想在同一个应用中使用多个版本的组件,那么就无法阻止您为其命名<Jumbotron2 />。但是要注意,这会很快增加代码的复杂性并使您的软件包膨胀。

另一种选择是确保在添加“超级大国”时保持向后兼容性,但这一切都取决于它们是什么。

答案 1 :(得分:1)

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

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