15

使用时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所有依赖包中的版本?我必须手动完成还是有更好的方法?

4

1 回答 1

4

据我所知,目前无法用纱线本身来管理它。您可以使用lerna项目https://github.com/lerna/lerna/tree/master/commands/version#readme,它支持调整工作区的版本

手动(不带lerna)

对于我现有的项目,我是手动完成的。

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

添加postversion您的根目录 ./package.json 的脚本块

{
  "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 版本
于 2020-01-10T07:00:15.427 回答