使用纱线工作区时如何在所有包中加入版本?

时间:2018-01-26 13:44:00

标签: node.js yarnpkg monorepo

使用- package.json - packages/ - package-a/ - package.json - index.js - package-b/ - package.json - index.js 时,我们有一个项目结构,如:

package-b

如果package-a和此目录中的许多其他软件包依赖package-a并且在进行一些更改后升级package-a版本,我该如何升级版本{{1在所有依赖包中?我必须手动完成还是有更好的方法?

1 个答案:

答案 0 :(得分:0)

正如我所知,现在不可能用纱线本身来解决这个问题。 您可以使用 lerna 项目https://github.com/lerna/lerna/tree/master/commands/version#readme,该项目支持提高工作空间的版本

手册(没有lerna)

对于我现有的项目,我已经手动完成了。

注意:此命令将所有工作区设置为相同版本

在根./package.json的脚本块中添加postversion

{
  "version": "1.0.0",
  ...
  "scripts": {
    "version:package-a": "cd packages/package-a && yarn version --new-version $npm_package_version",
    "version:package-b": "cd packages/package-b && yarn version --new-version $npm_package_version",
    "postversion": "yarn version:package-a && yarn version:package-b"
  }
}
  • 现在您可以运行:yarn version --patch
  • 这会将所有工作区(package-a和package-b)的版本都更改为相同的 1.0.1版本