Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Lerna是否可以根据传统的提交规范预发布版本?_Javascript_Lerna_Monorepo_Conventional Commits - Fatal编程技术网

Javascript Lerna是否可以根据传统的提交规范预发布版本?

Javascript Lerna是否可以根据传统的提交规范预发布版本?,javascript,lerna,monorepo,conventional-commits,Javascript,Lerna,Monorepo,Conventional Commits,根据标准,Lerna3.20.2似乎无法升级预发布版本(例如1.0.0-alpha.0) 如果你想试试这个,我做了一个测试 假设我们有两个由Lerna管理的存储库,都有三个子包。一个回购有“生产”包,另一个有“预发行”包: 然后,我在两个存储库中进行以下提交:(提交遵循传统的提交规范) 主要包装中的重大变化 次要软件包中的新功能 修补程序包中的错误修复 并在两个存储库中运行此命令: npx lerna publish --conventional-commits --yes 2>/de

根据标准,Lerna
3.20.2
似乎无法升级预发布版本(例如
1.0.0-alpha.0

如果你想试试这个,我做了一个测试

假设我们有两个由Lerna管理的存储库,都有三个子包。一个回购有“生产”包,另一个有“预发行”包:

然后,我在两个存储库中进行以下提交:(提交遵循传统的提交规范)

  • 主要包装中的重大变化
  • 次要软件包中的新功能
  • 修补程序包中的错误修复
并在两个存储库中运行此命令:

npx lerna publish --conventional-commits --yes 2>/dev/null
观察 “生产”回购协议将根据常规提交规范更新其包:

Changes:
 - major: 1.0.0 => 2.0.0 (private)
 - minor: 1.0.0 => 1.1.0 (private)
 - patch: 1.0.0 => 1.0.1 (private)
然而,在预发行回购协议中,所有软件包都只是“打补丁”:

这个GitHub中的线程似乎暗示这是一个bug(但我不确定)

问题我希望我的“预发行”回购协议中的包以与“生产”回购协议中相同的方式更新,同时保留其预发行后缀。我做错了什么


您还可以跟进我提出的GitHub,它有相同的问题:

您必须执行lerna版本控制命令

  • lerna版本专业版

  • lerna版本premajor

  • lerna版本预发布

现在,您将看到在
lerna.json
中所做的所有更改(这是保存实际版本的地方,
version
命令是唯一更改主要、次要和修补程序编号的命令)

也有相同的问题:

您必须执行lerna版本控制命令

  • lerna版本专业版

  • lerna版本premajor

  • lerna版本预发布


现在,您将看到在
lerna.json
中所做的所有更改(这是保存实际版本的地方,
version
命令是唯一更改主要、次要和修补程序编号的命令)

我使用了以下命令:

lerna发布--常规提交--常规预发布

下图解释了这些标志的版本凹凸:


我使用了以下命令:

lerna发布--常规提交--常规预发布

下图解释了这些标志的版本凹凸:


运行
lerna publish预发行版
将我的版本从
0.3.3-alpha.0
->
0.3.3-alpha.1
。添加
--conditional commits
标志对行为没有任何影响。@JamieBirch此命令之前您的提交是什么?是否有任何使用关键字的提交,如页脚中的断开更改(这会使版本发生重大变化)?我以前的版本是
0.3.3-alpha.0
。从那时起,我进行了18次提交,其中只有一次包含关键字(即“feat:”)。所以我认为它根本不检查提交消息;它只是决定如何完全基于您在命令中编写的术语来升级版本,例如,
prerelease
对于
lerna publish prerelease
。运行
lerna publish prerelease
将我的版本从
0.3.3-alpha.0
->
0.3.3-alpha.1
升级。添加
--conditional commits
标志对行为没有任何影响。@JamieBirch此命令之前您的提交是什么?是否有任何使用关键字的提交,如页脚中的断开更改(这会使版本发生重大变化)?我以前的版本是
0.3.3-alpha.0
。从那时起,我进行了18次提交,其中只有一次包含关键字(即“feat:”)。所以我认为它根本不检查提交消息;它只是决定如何完全根据您在命令中编写的术语来升级版本,例如,
prerelease
对于
lerna publish prerelease
Changes:
 - major: 1.0.0 => 2.0.0 (private)
 - minor: 1.0.0 => 1.1.0 (private)
 - patch: 1.0.0 => 1.0.1 (private)
Changes:
 - major: 1.0.0-alpha.0 => 1.0.0-alpha.1 (private)
 - minor: 1.0.0-alpha.0 => 1.0.0-alpha.1 (private)
 - patch: 1.0.0-alpha.0 => 1.0.0-alpha.1 (private)