v9.0.0-alpha.4
Pre-releaseMajor Changes
-
Node.js v16 support dropped. Use at least Node.js v18.12.
-
Support for lockfile v5 is dropped. Use pnpm v8 to convert lockfile v5 to lockfile v6 #7470.
-
The
dedupe-injected-depssetting istrueby default. -
The default value of the
link-workspace-packagessetting changed fromtruetofalse. This means that by default, dependencies will be linked from workspace packages only when they are specified using the workspace protocol. -
Use the same directories on macOS as on Linux. Don't use directories inside
~/Libraryon macOS #7321. -
The default value of the hoist-workspace-packages is
true. -
pnpm licenses listprints license information of all versions of the same package in case different versions use different licenses. The format of thepnpm licenses list --jsonoutput has been changed #7528. -
A new command added for printing completion code to the console:
pnpm completion [shell]. The old command that modified the user's shell dotfiles has been removed #3083. -
Use the same directories on macOS as on Linux. Don't use directories inside
~/Libraryon macOS #7321. -
Peer dependencies of peer dependencies are now resolved correctly. When peer dependencies have peer dependencies of their own, the peer dependencies are grouped with their own peer dependencies before being linked to their dependents.
For instance, if
cardhasreactin peer dependencies andreacthastypescriptin its peer dependencies, then the same version ofreactmay be linked from different places if there are multiple versions oftypescript. For instance:project1/package.json { "dependencies": { "card": "1.0.0", "react": "16.8.0", "typescript": "7.0.0" } } project2/package.json { "dependencies": { "card": "1.0.0", "react": "16.8.0", "typescript": "8.0.0" } } node_modules .pnpm card@1.0.0(react@16.8.0(typescript@7.0.0)) node_modules card react --> ../../react@16.8.0(typescript@7.0.0)/node_modules/react react@16.8.0(typescript@7.0.0) node_modules react typescript --> ../../typescript@7.0.0/node_modules/typescript typescript@7.0.0 node_modules typescript card@1.0.0(react@16.8.0(typescript@8.0.0)) node_modules card react --> ../../react@16.8.0(typescript@8.0.0)/node_modules/react react@16.8.0(typescript@8.0.0) node_modules react typescript --> ../../typescript@8.0.0/node_modules/typescript typescript@8.0.0 node_modules typescriptIn the above example, both projects have
cardin dependencies but the projects use different versions oftypescript. Hence, even though the same version ofcardis used,cardinproject1will referencereactfrom a directory where it is placed withtypescript@7.0.0(because it resolvestypescriptfrom the dependencies ofproject1), whilecardinproject2will referencereactwithtypescript@8.0.0.Related issue: #7444.
Related PR: #7606.
Minor Changes
-
It is now possible to install only a subdirectory from a Git repository.
For example,
pnpm add github:user/repo#path:packages/foowill add a dependency from thepackages/foosubdirectory.This new parameter may be combined with other supported parameters separated by
&. For instance, the next command will install the same package from thedevbranch:pnpm add github:user/repo#dev&path:packages/bar. -
node-gypupdated to version 10. -
PowerShell completion support added #7597.
-
Support
node-optionsoption inside.npmrcfile when running scripts #7596
Platinum Sponsors
|
|
|
Gold Sponsors
|
|
|
|
|
|
|
|
Our Silver Sponsors
|
|
|
|
|
|
|
|
|
|