以下是该方案:
我们想要一个monorepo用于几个组件,并希望使用带有纱线工作空间的lerna。
为确保语义版本控制不会出现任何问题,对版本号进行代码审查也会很不错。
因此package.json
定义了version-bump
脚本,该脚本仅用于增加包版本。
运行测试并且CR正常后,我们希望部署机器人将包发布到我们的自定义注册表中。
为此,最好使用lerna publish --skip-git
,以便lerna只发布更改的包。
这里的问题是lerna publish
不会只发布包,而是再次询问它们的版本增量。
很高兴知道在不增加版本的情况下发布选项或解决方法。
我们当前的解决方法是使用lerna exec npm publish
,但这会尝试再次发布已发布的包。我们也无法使用lerna exec yarn publish
,因为在这种情况下yarn
会要求版本增量。
设置如下:
lerna.json:
{
"lerna": "2.5.1",
"version": "independent",
"npmClient": "yarn",
"useWorkspaces": true,
"packages": [
"packages/*"
]
}
的package.json
{
"name": "…",
"version": "0.0.0",
"description": "…",
"main": "index.js",
"repository": {
"type": "git",
"url": "…"
},
"workspaces": [
"packages/*"
],
"private": true,
"scripts": {
"version-bump": "./node_modules/lerna/bin/lerna.js publish --skip-npm",
"test": "echo well tested"
},
"devDependencies": {
"lerna": "^2.5.1"
}
}
答案 0 :(得分:3)
对于任何需要此功能的人来说,看起来他们正在为v3.0工作:
单独"版本"和"发布"命令 - https://github.com/lerna/lerna/issues/961
答案 1 :(得分:2)
我在同一条船上。该功能不存在。理想情况下,Lerna会有一个你可以传递的参数来跳过版本号。你最好在Github的项目中制造一些噪音:https://github.com/lerna/lerna/issues