【问题标题】:How to bump version in all the packages when using yarn workspaces?使用纱线工作区时如何在所有包中增加版本?
【发布时间】:2018-01-26 13:43:59
【问题描述】:

当使用Yarn Workspaces时,我们的项目结构如下:

- package.json
- packages/
    - package-a/
        - package.json
        - index.js
    - package-b/
        - package.json
        - index.js

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

【问题讨论】:

标签: node.js yarnpkg monorepo


【解决方案1】:

据我所知,目前无法用纱线本身来管理它。 你可以使用 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 版

【讨论】:

  • --no-git-tag-version 添加到version:package-* 以防止纱线多次创建标签。像这样:"version:package-a": "cd packages/package-a && yarn version --new-version $npm_package_version --no-git-tag-version",
猜你喜欢
  • 1970-01-01
  • 2020-07-04
  • 2020-08-21
  • 2020-07-31
  • 2018-07-18
  • 2021-09-05
  • 2021-06-03
  • 2021-12-18
  • 2019-10-28
相关资源
最近更新 更多