This repository has been archived by the owner on May 10, 2021. It is now read-only.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
^1.7.0
->^7.0.0
Release Notes
pnpm/pnpm
v6.3.0
Compare Source
Features
pnpm list -r --json
returns the locations of workspace projects via thepath
field #3432.Bug Fixes
save-prefix
should be respected, when it is set to empty #3414.pnpm why
: do not incorrectly include linked deps in search results #3428.v6.2.0
Compare Source
v6.1.0
Compare Source
Features
enable-pre-post-scripts
. When it is set totrue
, lifecycle scripts with pre/post prefixes are automatically executed by pnpm #3348.v6.0.0
Compare Source
Breaking Changes
Node.js v10 support is dropped. At least Node.js v12.17 is required for the package to work.
Arbitrary pre/post hooks for user-defined scripts (such as
prestart
) are not executed automatically #2891.The lockfile version is bumped to v5.3. Changes in the new format:
resolution
,engines
,os
, andcpu
fields are now always written in a single lines, as the first keys of the package objects.transitivePeerDependencies
.The layout of the virtual store directory has changed (
node_modules/.pnpm
) to allow keeping cache in it:#
instead of slashes.modules-cache-max-age
. The default value of the setting is 10080 (7 days in seconds).modules-cache-max-age
is the time in minutes after which pnpm should remove the orphan packages fromnode_modules
.pnpx does not automatically install packages. A prompt asks the user if a package should be installed, if it is not present.
pnpx --yes
tells pnpx to install any missing package.pnpx --no
makes pnpx fail if the called packages is not installed.pnpmfile.js
renamed to.pnpmfile.cjs
in order to force CommonJS..pnp.js
renamed to.pnp.cjs
in order to force CommonJS.The
pnpm-prefix
setting is removed. Useglobal-dir
to specify a custom location for the globally installed packages.The default depth of an update is
Infinity
, not0
.The
--global
option should be used when linking from/to the global modules directory.Linking a package to the global directory:
pnpm link
pnpm link --global
Linking a package from the global directory:
pnpm link foo
pnpm link --global foo
pnpm's command file's extension changed to
.cjs
(bin/pnpm.js
=>bin/pnpm.cjs
).node-gyp updated to v8.
prepublish
is not executed on a localpnpm install
. Useprepare
instead.Features
A new command added: pnpm fetch.
Fetch packages from a lockfile into virtual store, package manifest is ignored.
This command is specifically designed to boost building a docker image.
Overrides match dependencies by checking if the target range is a subset of the specified range, instead of making an exact match.
For example, the following override will replace any version of
foo
that has a subrange on v2:This will override
[email protected]
andfoo@^2.3.0
to[email protected]
as both2.2.0
and^2.3.0
are subranges of2
.v5.0.0
Compare Source
Major Changes
🚀 33% faster installation times vs pnpm v4.
In some cases, 2 times faster than Yarn v1! (performance diff of pnpm v4 vs v5)
All the benchmarks are here.
A content-addressable filesystem is used to store packages on the disk.
pnpm v5 uses a content-addressable filesystem to store all files from all module directories on a disk. If you depend on different versions of lodash, only the files that differ are added to the store. If lodash has 100 files, and a new version has a change only in one of those files, pnpm update will only add 1 new file to the storage.
For more info about the structure of this new store, you can check the GitHub issue about it.
This change was inspired by dupe-krill and the content-addressable storage of Git.
Reduced directory nesting in the virtual store directory.
In pnpm v4, if you installed
[email protected]
, it was hard-linked intonode_modules/.pnpm/registry.npmjs.org/foo/1.0.0/
.In pnpm v5, it will be hard-linked into
node_modules/.pnpm/[email protected]/
. This new structure of the virtual store directory drastically reduces the number of directories pnpm has to create. Hence, there are fewer filesystem operations, which improves speed.pnpm store usages
removed.This command was using information from the
store.json
files, which is not present in the new content-addressable storage anymore.The
independent-leaves
setting has been removed.When hoisting was off, it was possible to set the
independent-leaves
setting totrue
. Whentrue
, leaf dependencies were symlinked directly from the global store. However, we turned hoisting on by default for pnpm v4, so this feature has no future at the moment.The
resolution-strategy
setting has been removed.By default, the
fewer-dependencies
resolution strategy is used. It was possible to select afast
resolution strategy. This setting is deprecated to simplify future improvements to the resolution algorithm.The store and the modules directory are not locked.
We are not using directory locks anymore. So the
--no-lock
option will throw an error. Some users had issues with locking. We have confidence that pnpm will never leave either node_modules or the store in a broken state,so we removed locking.
git-checks
istrue
by default.By default,
pnpm publish
will make some checks before actually publishing a new version of your package.The next checks will happen:
master
by default. This is configurable through thepublish-branch
setting.If you don't want this checks, run
pnpm publish --no-git-checks
or set this setting tofalse
via a.npmrc
file.In case of a crash, the debug file will be written to
node_modules/.pnpm-debug.log
(not topnpm-debug.log
as in v4 and earlier).Minor Changes
The
link-workspace-packages
setting may now be set todeep
.When
link-workspace-packages
is set todeep
, packages from the workspace will be linked even to subdependencies.v4.0.0
Compare Source
Breaking Changes
node_modules
structure.node_modules/.pnpm
(#1636, @zkochan)node_modules/.pnpm/node_modules
. So application code has no access to the hoisted packages but dependencies have. (#1998, @zkochan)node_modules/.pnpm-lock.yaml
tonode_modules/.pnpm/lock.yaml
(#2018, @zkochan)shamefully-flatten
renamed toshamefully-hoist
. (@zkochan)hoist-pattern
is*
by default. All packages are hoisted but application code has access only to listed dependencies. So the buggy ecosystem packages will work but pnpm will prevent users from requiring packages that are not declared inpackage.json
. (@zkochan)pnpm add
fails if no packages are specified (5f73a7c
, @zkochan)pnpm install
installs all dependencies of all workspace packages when executed inside a workspace (5f73a7c
, @zkochan)independent-leaves
is only allowed with hoisting turned off (f3d5037
, @zkochan)pnpm outdated
does not print details by default. To should details, use the--long
flag (#2017, @aparajita)package.json
is always included in the workspace (#2021, @ExE-Boss)pnpm install --foo
pnpm remove foo --save-exact
--*-shrinkwrap
option aliases from the CLI.fewer-dependencies
instead offast
(#2042, @zkochan)reflink
anymore. Useclone
instead, which is a cross-platform alternative.The new pattern matcher only supports
*
(so you can doeslint-*
or*-plugin-*
). The*
now also matches scopes, so*plugin
matches both@eslint/plugin
andeslint-plugin
.Features
true
by default. Whenfalse
, pnpm will not hoist any dependencies in node_modules, preventing dependencies inside node_modules from accessing unlisted dependencies. (#2004, @zkochan)*
by default. All packages matching this pattern will be hoisted. For example, you can choose to hoist only eslint packages:hoist-pattern=eslint-*
. By default, all packages are hoisted. (#1997, #1998, @zkochan)shamefully-flatten
in previous versions of pnpm. The project's code has access to hoisted dependencies. (#2006, @zkochan)pnpm outdated
output for readability (#2007, @aparajita)pnpm outdated --no-table
prints a list of outdated packages instead of a table (#2026, @aparajita)--help
commands (#2013, @zkochan)pnpm why <package>
(#2015, @ExE-Boss)v3.2.0
Compare Source
Features
-L
,--latest
flag forupdate
command. When used, version ranges inpackage.json
are ignored (#1307)Usage examples:
--save-peer
flag (#1064)Usage example:
optional peer dependencies (#1486)
Usage example. In
package.json
mark optional peer deps via thepeerDependenciesMeta
flag:at least Node.js 8.15 is required to run pnpm>=v3.2
Bug Fixes
--independent-leaves
flag (859aed1
)dec1b42
)Milestone: https://github.com/pnpm/pnpm/milestone/5
v3.1.0
Compare Source
Features
--resolution-strategy fast
- the default resolution strategy. Speed is preferred over deduplication--resolution-strategy fewer-dependencies
- already installed dependencies are preferred even if newer versions satisfy a rangeBug Fixes
0d8a7be
)pnpm store add
should read the registries of scoped packages from.npmrc
(#1737)v3.0.0
Compare Source
Breaking Changes
shrinkwrap.yaml
topnpm-lock.yaml
--scope
flag is deprecated-r
flag is not an alias of--registry
anymore.pnpm i -r
===pnpm recursive install
save-exact
andsave-prefix
configs (#1633)pnpm recursive link
command is deprecatedlink-workspace-packages
config istrue
by defaultshared-workspace-lockfile
config istrue
by defaultshrinkwrap
->lockfile
shrinkwrap-only
->lockfile-only
shrinkwrap-directory
->lockfile-directory
shared-workspace-shrinkwrap
->shared-workspace-lockfile
frozen-shrinkwrap
->frozen-lockfile
prefer-frozen-shrinkwrap
->prefer-frozen-lockfile
node_modules
may not contain!
in their path (#1601)v2.0.0
Compare Source
Breaking Changes
store-path
config is not an alias of thestore
configlink:
inshrinkwrap.yaml
pnpm unlink
is not an alias ofpnpm uninstall
. It is now an alias ofpnpm dislink
Bug Fixes
pnpm recursive link
adds link to proper dependency type (839f7ec
)7006aac
)Configuration
📅 Schedule: At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻️ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by WhiteSource Renovate. View repository job log here.