pnpm is a fast, disk space efficient package manager. It uses a content-addressable filesystem to store all files for all module directories on disk. When using npm or Yarn, if you have 100 projects using lodash, you will have 100 copies of lodash on disk, whereas with pnpm lodash will be stored in a content-addressable memory.
pnpm 8.0 is officially released, the updates are as follows:
major changes
- End of support for Node.js 14
- configuration update
auto-install-peers
: enabled by defaultdedupe-peer-dependents
: Enabled by default.resolve-peers-from-workspace-root
: Enabled by default.save-workspace-protocol
: The default setting isrolling
.resolution-mode
: The default setting islowest-direct
.publishConfig.linkDirectory
: Enabled by default.
- Modification of Lockfile
- Lockfile v6 is adopted. This new format improves the readability of Lockfiles by removing the hash from the bundle ID. It also does some rearranging of the fields in
importers
the section . Newpnpm-lock.yaml
files are more resistant to git merge conflicts - The registry
pnpm-lock.yaml
fieldresolution
is removed from the object in it. - Even for projects with no dependencies, a Lockfile is generated.
- Lockfile v6 is adopted. This new format improves the readability of Lockfiles by removing the hash from the bundle ID. It also does some rearranging of the fields in
- other changes
- When there
package.json
isfiles
a field in it, only the files listed in it will be deployed. The same logic applies to injecting packages. This behavior can be changed by[deploy-all-files](<https://pnpm.io/8.x/npmrc#deploy-all-files>)
setting thetrue
- Direct dependencies are removed. If a dependency exists in both the project and the workspace root, it will only be linked against the workspace root.
- When there
- pnpm v7 support
- pnpm v7 probably won't get any new features after that, but it will continue to get bugfixes for a few months and bugfixes for at least a year.
For more details, please check: https://github.com/pnpm/pnpm/releases/tag/v8.0.0