When building distributables and artifacts it is faster to have a unique package-lock per workspace
npm ci tooling is built to ignore workspace package-locks
pnpm has support for workspace package-locks
lerna has built-in to support for workspace package-locks
There are some workarounds that exist to create a lerna style experience, but I think we should avoid those until we understand the maintenance costs of rolling our own implementation or adopting another project like lerna.
[ ] Should we use a workspace package-lock.json for /e2e/?
[ ] Should we use a package-lock.json for plugins/persistence/couchdb?
Breaking out of here https://github.com/nasa/openmct/pull/7837/files#r1755442175
Summary
We implemented npm workspaces in 4.0.0 for the e2e project. This is our first use of npm workspaces.
It looks as though npm workspaces do not natively support package lock https://github.com/npm/rfcs/issues/554. To summarize:
npm ci
tooling is built to ignore workspace package-lockspnpm
has support for workspace package-lockslerna
has built-in to support for workspace package-locksThere are some workarounds that exist to create a
lerna
style experience, but I think we should avoid those until we understand the maintenance costs of rolling our own implementation or adopting another project likelerna
.package-lock.json
for/e2e/
?package-lock.json
forplugins/persistence/couchdb
?