Yarn Resolutions
For example:
  "dependencies": {
    "package-a": "1.0.0",
    "package-b": "1.0.0"
  },
  "resolutions": {
    "**/package-d1": "2.0.0"
  }
This would render all versions of package-d1 in all packages to the same version.
A resolution contains on the left-hand side a glob pattern applied to the dependency tree (and not to the node_modules directory tree, since the latter is the result of yarn resolution being influenced by the resolution).
- a/b denotes the directly nested dependency b of the project's dependency a.
- **/a/b denotes the directly nested dependency b of all the dependencies and nested dependencies a of the project.
- a/**/b denotes all the nested dependencies b of the project's dependency a.
- **/a denotes all the nested dependencies a of the project.
- a is an alias for **/a (for retro-compatibility, see below, and because if it wasn't such an alias, it wouldn't mean anything as it would represent one of the non-nested project dependencies, which can't be overridden as explained below).
- ** denotes all the nested dependencies of the project (a bad idea mostly, as well as all other designations ending with **).
References
Last modified: 202401040446