Major Changes
-
pnpm config get(without--json) no longer print INI formatted text.
Instead, it would print JSON for both objects and arrays and raw string for
strings, numbers, booleans, and nulls.
pnpm config get --jsonwould still print all types of values as JSON like before. -
pnpm config listandpnpm config get(without argument) now hide auth-related settings. -
This package is now pure ESM.
-
pnpm no longer loads non-auth and non-registry settings from rc files. Other settings must be defined in
pnpm-workspace.yaml. -
The pnpm CLI now gets installed with a specific version of Node.js, which it uses for its runtime. This makes pnpm more stable and it doesn't rely on your globally install Node.js anymore.
-
Node.js v18 and 19 support discontinued.
-
pnpm config get <array>now prints a JSON array. -
The default value of the
typefield in thepackage.jsonfile of the project initialized bypnpm initcommand has been changed tomodule. -
pnpm config listandpnpm config get(without argument) now show top-level keys as camelCase.
Exception: Keys that start with@or//would be preserved (their cases don't change). -
The standalone exe version of pnpm requires at least glibc 2.27.
-
pnpm config listnow prints a JSON object instead of INI formatted text. -
pnpm config getandpnpm config listno longer load non camelCase options from the workspace manifest (pnpm-workspace.yaml). -
JSON files in the store and cache are replaced with binary files generated with v8.serialize.
Reading and deserializing a binary file generated with v8.serialize appears to be about 23% faster than reading and parsing a JSON file. Other operations are similar in speed. Therefore, we have switched to V8 binary files for storing data in pnpm’s global store and cache. The disadvantage of this approach is that V8 files generated by newer versions of Node.js cannot be deserialized by older versions. In such cases, we ignore the cache.
Related PR: #9971.
Minor Changes
-
Load environment variables whose names start with
pnpm_config_into config. These environment variables override settings frompnpm-workspace.yamlbut not the CLI arguments. -
Add support for a global YAML config file named
config.yaml.Now configurations are divided into 2 categories:
- Registry and auth settings which can be stored in INI files such as global
rcand local.npmrc. - pnpm-specific settings which can only be loaded from YAML files such as global
config.yamland localpnpm-workspace.yaml.
- Registry and auth settings which can be stored in INI files such as global
-
Added support for pnpmfiles written in ESM. They should have the
.mjsextension:.pnpmfile.mjs#9730.
Patch Changes
- Explicitly tell
npmthe path to the globalrcconfig file.
Platinum Sponsors
|
|
Gold Sponsors
|
|
|
|
|
|
|