The npm-shrinkwrap
ensures that installed packages also have the same version of dependencies that was used at the moment of publishing to the registry (These versions are stated in the npm-shrinkwrap
which is then used on installation).
I am currently using yarn (and lerna for publishing) and working on a monorepo project with workspaces. Now I would like to have each package in the monorepo have same guarantees provided by npm-shrinkwrap
.
One shortcoming of the npm-shrinkwrap
is that it does not support workspaces. Hence I cannot use npm-shrinkwrap
since it is only created at the root and does not influence how individual packages in the monorepo get installed.
Since I am using yarn
, I was wondering if there is an alternative to npm-shrinkwrap
in yarn?
Or maybe a better question is, using yarn/lerna, how do I lock version dependencies for publication, such that when my packages in the mono-repo are downloaded, they are downloaded with the exact versions of dependencies (and transitive dependencies) that was specified at the point of publication?
I found the following in the yarn docs (classic yarn 1.x)
From here: https://classic.yarnpkg.com/en/docs/migrating-from-npm