* fix: don't include specifiers field in new experimental lockfile format
* test(lockfile-file): update arguments in normalizeLockfile test
* test: lockfile-file
Co-authored-by: Brandon Cheng <gluxon@users.noreply.github.com>
* fix: plugin-commands-deploy use path resolve on deploy target directory (#4980)
Previously the deploy target directory was specified as a relative path
to the workspace project root. This meant that absolute paths could not be used.
Now this uses the current working directory and allows absolute paths,
this is more in line with users expectations of unix command behaivour.
close#4980
* fix: allow both absolute and relative
* docs: update changesets
Co-authored-by: Zoltan Kochan <z@kochan.io>
* feat: add experimental use-inline-specifiers-lockfile-format
* fix(lockfile-file): check importers key for shared lockfile format
The `convertFromLockfileFileMutable` function reverts changes from
`normalizeLockfile` when not using the shared lockfile format.
- The non-shared lockfile format puts fields like `specifiers`,
`dependencies`, `devDependencies`, `optionalDependencies`, and
`dependenciesMeta` on the root of the lockfile. This is typically
the case for a repo not using pnpm workspaces.
- The shared lockfile format puts these under a `importers` block
scoped by a path.
The `use-inline-specifiers-lockfile-format` feature flag removes the
`specifiers` block in favor of putting each specifier next to the
resolved version within each `dependencies`, `devDependencies`, etc
block.
This means the `convertFromLockfileFileMutable` function can no longer
check for `specifiers` to detect the whether the "shared" format is
used. @zkochan suggested checking for `importers` instead, which should
have the same effect.
https://github.com/pnpm/pnpm/pull/5091#discussion_r929326835
* test(lockfile-file): add read & write test for useInlineSpecifiersFormat
A new setting supported: `prefer-symlinked-executables`
When `true`, on Posix systems pnpm will create symlinks to executables in
`node_modules/.bin` instead of command shims.
This setting is `true` by default when `node-linker` is set to
`hoisted`.
close#4782