Reputation: 2160
When using Yarn Workspaces
, we have a project structure like:
- package.json
- packages/
- package-a/
- package.json
- index.js
- package-b/
- package.json
- index.js
If package-b
and lots of other packages in this directory are dependent upon package-a
and I upgrade the version of package-a
after making some changes, How can I upgrade the version package-a
in all the dependent packages? Do I have to do it manually or is there a better way?
Upvotes: 15
Views: 8218
Reputation: 42
I believe the other answer is outdated; now with yarn workspaces you can use yarn up <library-name>
to bump your dependency in all your workspaces.
Upvotes: 0
Reputation: 71
as i know its not possible for now to manage this with yarn itself. you can use the lerna project https://github.com/lerna/lerna/tree/master/commands/version#readme which supports bumping the version of workspaces
for my existing projects i have done it manually.
attention: this command sets all workspaces to the same version
add postversion
in the scripts block of your root ./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
Update 2022-04-08
Solution 1: It's now simpler to bumb all versions with the use of the yarn workspace ...
command. In the main package.json
you have to put the following:
{
"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"
}
}
If you execute now yarn version
all the workspace versions are bumped to the same as they inherit from the specified version from the main package.json
file
Solution 2: yarn has a solution for this. but it is still in experiment mode. https://yarnpkg.com/features/release-workflow
Upvotes: 5