Skip to content

Releases: pnpm/pnpm

v9.0.6

24 Apr 13:39
v9.0.6
88f53d4
Compare
Choose a tag to compare

Patch Changes

  • Lockfiles that have git-hosted dependencies specified should be correctly converted to the new lockfile format #7990.
  • Don't upgrade the lockfile format on pnpm install --frozen-lockfile #7991.

Platinum Sponsors

Gold Sponsors

Our Silver Sponsors

v9.0.5

21 Apr 21:21
v9.0.5
63adcb5
Compare
Choose a tag to compare

Patch Changes

  • Lockfiles with local or git-hosted dependencies are now successfully converted to the new lockfile format #7955.
  • Resolve peer dependencies correctly, when they have prerelease versions #7977.
  • Fix aliased dependencies resolution on repeat install with existing lockfile, when the aliased dependency doesn't specify a version or range #7957.
  • The lockfile should be saved in the new format even if it is up-to-date.

Platinum Sponsors

Gold Sponsors

Our Silver Sponsors

v9.0.4

19 Apr 01:05
v9.0.4
50e3707
Compare
Choose a tag to compare

Patch Changes

  • Fix aliased dependencies resolution on repeat install with existing lockfile #7957.
  • The engines.pnpm field in the package.json files of dependencies should be ignored #7965.

Platinum Sponsors

Gold Sponsors

Our Silver Sponsors

v9.0.3

18 Apr 18:55
v9.0.3
65df252
Compare
Choose a tag to compare

Patch Changes

  • If the script-shell option is configured to a .bat/.cmd file on Windows, pnpm will now error with ERR_PNPM_INVALID_SCRIPT_SHELL_WINDOWS. Newer versions of Node.js released in April 2024 do not support executing these files directly without behavior differences. If the script-shell option is necessary for your use-case, please set a .exe file instead.
  • Print a hint about the package-manager-strict setting, when pnpm doesn't match the version specified in the packageManager field in package.json.
  • pnpm completion command should work in the standalone version of pnpm #7948.

Platinum Sponsors

Gold Sponsors

Our Silver Sponsors

v9.0.2

17 Apr 16:51
v9.0.2
d87d36e
Compare
Choose a tag to compare

Patch Changes

  • Fixed an issue where optional dependencies were not linked into the dependent's node_modules #7943.

Platinum Sponsors

Gold Sponsors

Our Silver Sponsors

v9.0.1

16 Apr 14:11
v9.0.1
dd43b0f
Compare
Choose a tag to compare

Patch Changes

  • pnpm install --frozen-lockfile should work with lockfiles generated by pnpm v8, if they don't need updates #7934.

Platinum Sponsors

Gold Sponsors

Our Silver Sponsors

v9.0.0

16 Apr 10:30
v9.0.0
dd6b0b6
Compare
Choose a tag to compare

Major Changes

  • Node.js v16 and 17 support discontinued

    If you still require Node.js 16 or 17, don't worry. We ship pnpm bundled with Node.js. This means that regardless of which Node.js version you've installed, pnpm will operate using the necessary Node.js runtime. For this to work you need to install pnpm either using the standalone script or install the @pnpm/exe package.

  • Corepack compatiblity:

    pnpm will now check the package.json file for a packageManager field. If this field is present and specifies a different package manager or a different version of pnpm than the one you're currently using, pnpm will not proceed. This ensures that you're always using the correct package manager and version that the project requires.

    NOTE: If you want to make this check less strict, set the package-manager-strict setting to false or the COREPACK_ENABLE_STRICT env variable to 0.

  • Configuration updates:

  • Lockfile changes:

    • Lockfile v9 is adopted. This new format has changes for better readability, and better resistence to Git conflicts.
    • Support for lockfile v5 is dropped. Use pnpm v8 to convert lockfile v5 to lockfile v6 #7470.
  • Dependency resolution changes:

    • Correct resolution of peer dependencies that have their own peer dependencies.
      Related issue: #7444.
      Related PR: #7606.
    • Optional peer dependencies may be resolved from any packages in the dependency graph #7830.
  • pnpm licenses list prints license information of all versions of the same package in case different versions use different licenses. The format of the pnpm licenses list --json output 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.

  • When installing git-hosted dependencies, only pick the files that would be packed with the package #7638.

Minor Changes

  • It is now possible to install only a subdirectory from a Git repository.

    For example, pnpm add github:user/repo#path:packages/foo will add a dependency from the packages/foo subdirectory.

    This new parameter may be combined with other supported parameters separated by &. For instance, the next command will install the same package from the dev branch: pnpm add github:user/repo#dev&path:packages/bar.

    Related issue: #4765.
    Related PR: #7487.

  • node-gyp updated to version 10.

  • PowerShell completion support added #7597.

  • Support node-options option inside .npmrc file when running scripts #7596.

  • Added support for registry-scoped SSL configurations (cert, key, and ca). Three new settings supported: <registryURL>:certfile, <registryURL>:keyfile, and <registryURL>:ca. For instance:

    //registry.mycomp.com/:certfile=server-cert.pem
    //registry.mycomp.com/:keyfile=server-key.pem
    //registry.mycomp.com/:cafile=client-cert.pem
    

    Related issue: #7427.
    Related PR: #7626.

  • Add a field named ignoredOptionalDependencies. This is an array of strings. If an optional dependency has its name included in this array, it will be skipped #7714.

  • The checksum of the .pnpmfile.cjs is saved into the lockfile. If the pnpmfile gets modified, the lockfile is reanalyzed to apply the changes #7662.

  • Added cache for pnpm dlx #5277.

Patch Changes

  • Package tarballs are not downloaded during --lockfile-only installation #1328.
  • Peer dependency rules should only affect reporting, not data in the lockfile #7758.
  • Link overrides should be able to use absolute path #7749.
  • pnpm dlx should not read settings from the current working directory #7916.

Platinum Sponsors

Gold Sponsors

Our Silver Sponsors

Read more

v9.0.0-rc.2

13 Apr 17:02
v9.0.0-rc.2
2f314ab
Compare
Choose a tag to compare
v9.0.0-rc.2 Pre-release
Pre-release

Installation instructions: https://pnpm.io/9.x/installation

Major Changes

  • Node.js v16 support discontinued

    If you still require Node.js 16, don't worry. We ship pnpm bundled with Node.js. This means that regardless of which Node.js version you've installed, pnpm will operate using the necessary Node.js runtime. For this to work you need to install pnpm either using the standalone script or install the @pnpm/exe package.

  • Configuration updates:

    • dedupe-injected-deps: enabled by default.
    • link-workspace-packages: disabled by default. This means that by default, dependencies will be linked from workspace packages only when they are specified using the workspace protocol.
    • hoist-workspace-packages: enabled by default.
    • enable-pre-post-scripts: enabled by default.
    • Use the same directory for state files on macOS as on Linux (~/.local/state/pnpm).
    • pnpm will now check the package.json file for a packageManager field. If this field is present and specifies a different package manager or a different version of pnpm than the one you're currently using, pnpm will not proceed. This ensures that you're always using the correct package manager and version that the project requires.
  • Lockfile changes:

    • Lockfile v9 is adopted. This new format has changes for better readability, and better resistence to Git conflicts.
    • Support for lockfile v5 is dropped. Use pnpm v8 to convert lockfile v5 to lockfile v6 #7470.
  • Dependency resolution changes:

    • Correct resolution of peer dependencies that have their own peer dependencies.
      Related issue: #7444.
      Related PR: #7606.
    • Optional peer dependencies may be resolved from any packages in the dependency graph #7830.
  • pnpm licenses list prints license information of all versions of the same package in case different versions use different licenses. The format of the pnpm licenses list --json output 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.

  • When installing git-hosted dependencies, only pick the files that would be packed with the package #7638.

Minor Changes

  • It is now possible to install only a subdirectory from a Git repository.

    For example, pnpm add github:user/repo#path:packages/foo will add a dependency from the packages/foo subdirectory.

    This new parameter may be combined with other supported parameters separated by &. For instance, the next command will install the same package from the dev branch: pnpm add github:user/repo#dev&path:packages/bar.

    Related issue: #4765.
    Related PR: #7487.

  • node-gyp updated to version 10.

  • PowerShell completion support added #7597.

  • Support node-options option inside .npmrc file when running scripts #7596.

  • Added support for registry-scoped SSL configurations (cert, key, and ca). Three new settings supported: <registryURL>:certfile, <registryURL>:keyfile, and <registryURL>:ca. For instance:

    //registry.mycomp.com/:certfile=server-cert.pem
    //registry.mycomp.com/:keyfile=server-key.pem
    //registry.mycomp.com/:cafile=client-cert.pem
    

    Related issue: #7427.
    Related PR: #7626.

  • Add a field named ignoredOptionalDependencies. This is an array of strings. If an optional dependency has its name included in this array, it will be skipped #7714.

  • The checksum of the .pnpmfile.cjs is saved into the lockfile. If the pnpmfile gets modified, the lockfile is reanalyzed to apply the changes #7662.

  • Added cache for pnpm dlx #5277.

Patch Changes

  • Package tarballs are not downloaded during --lockfile-only installation #1328.
  • Peer dependency rules should only affect reporting, not data in the lockfile #7758.
  • Link overrides should be able to use absolute path #7749.
  • pnpm dlx should not read settings from the current working directory #7916.

Platinum Sponsors

Gold Sponsors

Our Silver Sponsors

Read more

v8.15.7

13 Apr 16:18
v8.15.7
0897038
Compare
Choose a tag to compare

Patch Changes

  • pnpm config get prints a comma-separated list for an array value instead of nothing.
  • It should be possible to publish a tarball with custom dist-tag #7845.
  • Print the list of packages that were not built because they are ignored by configuration settings.

Platinum Sponsors

Gold Sponsors

Our Silver Sponsors

v9.0.0-rc.0

09 Apr 09:10
v9.0.0-rc.0
36a2d67
Compare
Choose a tag to compare
v9.0.0-rc.0 Pre-release
Pre-release

Installation instructions: https://pnpm.io/9.x/installation

Major Changes

  • Node.js v16 support dropped. Use at least Node.js v18.12.

  • Lockfile version bumped to v9.

  • Support for lockfile v5 is dropped. Use pnpm v8 to convert lockfile v5 to lockfile v6 #7470.

  • The dedupe-injected-deps setting is true by default.

  • The default value of the link-workspace-packages setting changed from true to false. This means that by default, dependencies will be linked from workspace packages only when they are specified using the workspace protocol.

  • The default value of the hoist-workspace-packages is true.

  • pnpm licenses list prints license information of all versions of the same package in case different versions use different licenses. The format of the pnpm licenses list --json output 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.

  • pnpm will now check the package.json file for a packageManager field. If this field is present and specifies a different package manager or a different version of pnpm than the one you're currently using, pnpm will not proceed. This ensures that you're always using the correct package manager and version that the project requires.

  • enable-pre-post-scripts is set to true by default. This means that when you run a script like start, prestart and poststart will also run.

  • When installing git-hosted dependencies, only pick the files that would be packed with the package #7638.

  • Use the same directory for state files on macOS as on Linux (~/.local/state/pnpm).

  • 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 card has react in peer dependencies and react has typescript in its peer dependencies, then the same version of react may be linked from different places if there are multiple versions of typescript. 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
            typescript
    

    In the above example, both projects have card in dependencies but the projects use different versions of typescript. Hence, even though the same version of card is used, card in project1 will reference react from a directory where it is placed with typescript@7.0.0 (because it resolves typescript from the dependencies of project1), while card in project2 will reference react with typescript@8.0.0.

    Related issue: #7444.

    Related PR: #7606.

  • Optional peer dependencies may be resolved from any packages in the dependency graph #7830.

Minor Changes

  • It is now possible to install only a subdirectory from a Git repository.

    For example, pnpm add github:user/repo#path:packages/foo will add a dependency from the packages/foo subdirectory.

    This new parameter may be combined with other supported parameters separated by &. For instance, the next command will install the same package from the dev branch: pnpm add github:user/repo#dev&path:packages/bar.

    Related issue: #4765.
    Related PR: #7487.

  • node-gyp updated to version 10.

  • PowerShell completion support added #7597.

  • Support node-options option inside .npmrc file when running scripts #7596.

  • Added support for registry-scoped SSL configurations (cert, key, and ca). Three new settings supported: <registryURL>:certfile, <registryURL>:keyfile, and <registryURL>:ca. For instance:

    //registry.mycomp.com/:certfile=server-cert.pem
    //registry.mycomp.com/:keyfile=server-key.pem
    //registry.mycomp.com/:cafile=client-cert.pem
    

    Related issue: #7427.
    Related PR: #7626.

  • Add a field named ignoredOptionalDependencies. This is an array of strings. If an optional dependency has its name included in this array, it will be skipped #7714.

  • The checksum of the .pnpmfile.cjs is saved into the lockfile. If the pnpmfile gets modified, the lockfile is reanalyzed to apply the changes #7662.

  • Added cache for pnpm dlx #5277.

Patch Changes

  • Package tarballs are not downloaded during --lockfile-only installation #1328.
  • Peer dependency rules should only affect reporting, not data in the lockfile #7758.
  • Link overrides should be able to use absolute path #7749.

Platinum Sponsors

Gold Sponsors

...
Read more