sid*_*shi 9 node.js monorepo yarnpkg
使用时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所有相关软件包中的版本?我必须手动完成还是有更好的方法?
据我所知,目前不可能用纱线本身来管理这个问题。您可以使用lerna项目https://github.com/lerna/lerna/tree/master/commands/version#readme,它支持更改工作区的版本
对于我现有的项目,我是手动完成的。
注意:此命令将所有工作区设置为同一版本
添加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更新2022-04-08
解决方案 1:现在使用该yarn workspace ...命令更简单地更新所有版本。主要package.json你必须输入以下内容:
{
  "version": "1.0.0",
  ...
  "scripts": {
    "version": "yarn workspace package-a version --new-version $npm_package_version && yarn workspace package-b version --new-version $npm_package_version"
  }
}
如果您现在执行,所有工作区版本都会与从主文件的yarn version指定版本继承的版本相同package.json
解决方案 2:yarn 有一个解决方案。但仍处于实验模式。https://yarnpkg.com/features/release-workflow
| 归档时间: | 
 | 
| 查看次数: | 257 次 | 
| 最近记录: |