用npm管理组件包的特性分支版本

4si2a6ki  于 2023-01-31  发布在  其他
关注(0)|答案(1)|浏览(250)

我们有一个React应用程序,它使用了我们编写的一些组件,并发布到我们的内部npm存储库。我们的代码在Bitbucket数据中心维护,构建是用Bamboo完成的,npm存储库托管在JFrog Artifactory中。我们使用功能分支和拉取请求来开发新功能。
应用程序中的新功能经常需要更改组件。在这种情况下,每个存储库(应用程序和组件)都有自己的功能分支和拉取请求。组件接口经常发生更改,因此应用程序需要组件的拉取请求版本,而不是主线版本来构建和测试。
构建是由构建服务器专门完成的,因此捆绑的javascript文件不会提交给git。
假设组件版本为1.0.0。应用程序中的新功能需要更改组件。在这种情况下,组件版本将递增至1.0.1。在测试版本1.0.1之前,我们不希望将其发布至Artifactory,但同时,新应用程序版本的构建需要版本1.0.1的更改。
我们目前的解决方案是在构建特性分支的过程中将组件的包版本更改为类似0.<Ticket #>.<Build #>的版本。这个0.x.x版本将发布到Artifactory,以便App特性分支可以使用它进行编译。
我们使用0.x.x,这样版本就不会大于当前发布的版本。一旦组件合并到主分支,它将使用正确的版本(1.0.1)编译,并再次发布到Artifactory。
我发现这个解决方案很麻烦,它需要一些有趣的构建脚本,确保分支名称总是遵循一些约定,并向开发人员传授这方面的知识。
我想知道是否有更好的方法来使用npm管理pull请求和特性分支,而不必在构建时操作package.json,这取决于它是特性分支还是主分支。

deyfvvtc

deyfvvtc1#

听起来你像是在使用npm包的第二个版本/ staging,只是使用npm吗?
我不是开发人员,但我做过一些软件包,测试一个还没有发布的软件包听起来不像测试软件包--使用一个beta标签npm publish --tag beta,把它拉到你的应用npm i package@beta中,然后在一个过渡环境中测试你的应用怎么样?
正如我所期望的,如果你应用了一个标记,那么这个标记需要被指定为被拉到一个repo中,这样你就可以用它来阻止用户使用这个版本的包--我相信如果你坚决不公开它,你可以在以后删除这个版本。
Here是一个中等的文章,可能会有帮助?

相关问题