Releases: pnpm/pnpm
pnpm 10.11.1
Patch Changes
- Fix an issue in which
pnpm deploy --legacy
creates unexpected directories when the rootpackage.json
has a workspace package as a peer dependency #9550. - Dependencies specified via a URL that redirects will only be locked to the target if it is immutable, fixing a regression when installing from GitHub releases. (#9531)
- Installation should not exit with an error if
strictPeerDependencies
istrue
but all issues are ignored bypeerDependencyRules
#9505. - Use
pnpm_config_
env variables instead ofnpm_config_
#9571. - Fix a regression (in v10.9.0) causing the
--lockfile-only
flag onpnpm update
to produce a differentpnpm-lock.yaml
than an update without the flag. - Let
pnpm deploy
work in repos withoverrides
wheninject-workspace-packages=true
#9283. - Fixed the problem of path loss caused by parsing URL address. Fixes a regression shipped in pnpm v10.11 via #9502.
pnpm -r --silent run
should not print out section #9563.
Platinum Sponsors
|
|
|
Gold Sponsors
|
|
|
|
|
|
|
|
pnpm 10.11
Minor Changes
-
A new setting added for
pnpm init
to create apackage.json
withtype=module
, wheninit-type
ismodule
. Works as a flag for the init command too #9463. -
Added support for Nushell to
pnpm setup
#6476. -
Added two new flags to the
pnpm audit
command,--ignore
and--ignore-unfixable
#8474.Ignore all vulnerabilities that have no solution:
> pnpm audit --ignore-unfixable
Provide a list of CVE's to ignore those specifically, even if they have a resolution.
> pnpm audit --ignore=CVE-2021-1234 --ignore=CVE-2021-5678
-
Added support for recursively running pack in every project of a workspace #4351.
Now you can run
pnpm -r pack
to pack all packages in the workspace.
Patch Changes
- pnpm version management should work, when
dangerouslyAllowAllBuilds
is set totrue
#9472. pnpm link
should work from inside a workspace #9506.- Set the default
workspaceConcurrency
toMath.min(os.availableParallelism(), 4)
#9493. - Installation should not exit with an error if
strictPeerDependencies
istrue
but all issues are ignored bypeerDependencyRules
#9505. - Read
updateConfig
frompnpm-workspace.yaml
#9500. - Add support for
recursive pack
- Remove
url.parse
usage to fix warning on Node.js 24 #9492. pnpm run
should be able to run commands from the workspace root, ifignoreScripts
is set tottrue
#4858.
Platinum Sponsors
|
|
|
Gold Sponsors
|
|
|
|
|
|
|
|
pnpm 10.10
Minor Changes
- Allow loading the
preResolution
,importPackage
, andfetchers
hooks from local pnpmfile.
Patch Changes
- Fix
cd
command, whenshellEmulator
istrue
#7838. - Sort keys in
pnpm-workspace.yaml
#9453. - Pass the
npm_package_json
environment variable to the executed scripts #9452. - Fixed a mistake in the description of the
--reporter=silent
option.
Platinum Sponsors
|
|
|
Gold Sponsors
|
|
|
|
|
|
|
|
pnpm 10.9
Minor Changes
-
Added support for installing JSR packages. You can now install JSR packages using the following syntax:
pnpm add jsr:<pkg_name>
or with a version range:
pnpm add jsr:<pkg_name>@<range>
For example, running:
pnpm add jsr:@foo/bar
will add the following entry to your
package.json
:{ "dependencies": { "@foo/bar": "jsr:^0.1.2" } }
When publishing, this entry will be transformed into a format compatible with npm, older versions of Yarn, and previous pnpm versions:
{ "dependencies": { "@foo/bar": "npm:@jsr/foo__bar@^0.1.2" } }
Related issue: #8941.
Note: The
@jsr
scope defaults to https://npm.jsr.io/ if the@jsr:registry
setting is not defined. -
Added a new setting,
dangerouslyAllowAllBuilds
, for automatically running any scripts of dependencies without the need to approve any builds. It was already possible to allow all builds by adding this topnpm-workspace.yaml
:neverBuiltDependencies: []
dangerouslyAllowAllBuilds
has the same effect but also allows to be set globally via:pnpm config set dangerouslyAllowAllBuilds true
It can also be set when running a command:
pnpm install --dangerously-allow-all-builds
Patch Changes
- Fix a false negative in
verifyDepsBeforeRun
whennodeLinker
ishoisted
and there is a workspace package without dependencies andnode_modules
directory #9424. - Explicitly drop
verifyDepsBeforeRun
support fornodeLinker: pnp
. CombiningverifyDepsBeforeRun
andnodeLinker: pnp
will now print a warning.
Platinum Sponsors
|
|
|
Gold Sponsors
|
|
|
|
|
|
|
|
pnpm 10.8.1
Patch Changes
- Removed bright white highlighting, which didn't look good on some light themes #9389.
- If there is no pnpm related configuration in
package.json
,onlyBuiltDependencies
will be written topnpm-workspace.yaml
file #9404. - The patch file path saved by the pnpm
patch-commit
andpatch-remove
commands should be a relative path #9403.
Platinum Sponsors
|
|
|
Gold Sponsors
|
|
|
|
|
|
|
|
pnpm 10.8
Minor Changes
-
Experimental. A new hook is supported for updating configuration settings. The hook can be provided via
.pnpmfile.cjs
. For example:module.exports = { hooks: { updateConfig: (config) => ({ ...config, nodeLinker: "hoisted", }), }, };
-
Now you can use the
pnpm add
command with the--config
flag to install new configurational dependencies #9377.
Patch Changes
- Do not hang indefinitely, when there is a glob that starts with
!/
inpnpm-workspace.yaml
. This fixes a regression introduced by #9169. pnpm audit --fix
should update the overrides inpnpm-workspace.yaml
.pnpm link
should update overrides inpnpm-workspace.yaml
, not inpackage.json
#9365.
Platinum Sponsors
|
|
|
Gold Sponsors
|
|
|
|
|
|
|
|
pnpm 10.7.1
pnpm 10.7
Minor Changes
-
pnpm config get
andlist
also show settings set inpnpm-workspace.yaml
files #9316. -
It should be possible to use env variables in
pnpm-workspace.yaml
setting names and value. -
Add an ability to patch dependencies by version ranges. Exact versions override version ranges, which in turn override name-only patches. Version range
*
is the same as name-only, except that patch application failure will not be ignored.For example:
patchedDependencies: foo: patches/foo-1.patch foo@^2.0.0: patches/foo-2.patch foo@2.1.0: patches/foo-3.patch
The above configuration would apply
patches/foo-3.patch
tofoo@2.1.0
,patches/foo-2.patch
to allfoo
versions which satisfy^2.0.0
except2.1.0
, andpatches/foo-1.patch
to the remainingfoo
versions.[!WARNING]
The version ranges should not overlap. If you want to specialize a sub range, make sure to exclude it from the other keys. For example:# pnpm-workspace.yaml patchedDependencies: # the specialized sub range 'foo@2.2.0-2.8.0': patches/foo.2.2.0-2.8.0.patch # the more general patch, excluding the sub range above 'foo@>=2.0.0 <2.2.0 || >2.8.0': 'patches/foo.gte2.patch
In most cases, however, it's sufficient to just define an exact version to override the range.
-
pnpm config set --location=project
saves the setting to apnpm-workspace.yaml
file if no.npmrc
file is present in the directory #9316. -
Rename
pnpm.allowNonAppliedPatches
topnpm.allowUnusedPatches
. The old name is still supported but it would print a deprecation warning message. -
Add
pnpm.ignorePatchFailures
to manage whether pnpm would ignore patch application failures.If
ignorePatchFailures
is not set, pnpm would throw an error when patches with exact versions or version ranges fail to apply, and it would ignore failures from name-only patches.If
ignorePatchFailures
is explicitly set tofalse
, pnpm would throw an error when any type of patch fails to apply.If
ignorePatchFailures
is explicitly set totrue
, pnpm would print a warning when any type of patch fails to apply.
Patch Changes
- Remove dependency paths from audit output to prevent out-of-memory errors #9280.
Platinum Sponsors
|
|
|
Gold Sponsors
|
|
|
|
|
|
|
|
pnpm 10.6.5
Patch Changes
- Remove warnings after having explicitly approved no builds #9296.
- When installing different dependency packages, should retain the
ignoredBuilds
field in the.modules.yaml
file #9240. - Fix usages of the
catalog:
protocol in injected local workspace packages. This previously errored withERR_PNPM_SPEC_NOT_SUPPORTED_BY_ANY_RESOLVER
. #8715 - Setting
workspace-concurrency
to less than or equal to 0 should work #9297.
Platinum Sponsors
|
|
|
Gold Sponsors
|
|
|
|
|
|
|
|
pnpm 10.6.4
Patch Changes
- Fix
pnpm dlx
with--allow-build
flag #9263. - Invalid Node.js version in
use-node-version
should not cause pnpm itself to break #9276. - The max amount of workers running for linking packages from the store has been reduced to 4 to achieve optimal results #9286. The workers are performing many file system operations, so increasing the number of CPUs doesn't help performance after some point.
Platinum Sponsors
|
|
|
Gold Sponsors
|
|
|
|
|
|
|
|