node.js - 使用 yarn 工作区时如何在所有包中提高版本?

标签 node.js yarnpkg monorepo

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

最佳答案

据我所知,现在不可能用 yarn 本身来管理这个。
您可以使用 勒娜项目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
  • 这会将您所有工作区(包-a 和包-b)的版本提高到相同的 版本 1.0.1 .
  • 关于node.js - 使用 yarn 工作区时如何在所有包中提高版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48462539/

    相关文章:

    git - 在单一存储库中构建微服务的最佳策略是什么?

    node.js - 用于 node.js 编程和语法突出显示的 vim 插件? (如何)

    node.js - 字符串压缩可更快地刷新 WS2811 RGB LED

    angular - 如何从 mono 存储库构建 NestJs api

    javascript - 在 Gatsby 中安装新插件后解决 `prop-types` 中的 `.cache`

    node.js - 'npm install' 和 'yarn install' 最终都会出错

    yarnpkg - Yarn 工作区不构建本地依赖性

    javascript - 尝试访问js文件中的ejs数组

    validation - express-form 可以验证需要的输入类型 'file' 吗?

    javascript - 如何使用 yarn 更新/降级包版本?