Langsung ke konten utama

pnpm 10.15

· Satu menit membaca
Zoltan Kochan
Lead maintainer of pnpm

Minor Changes

New setting for catalogs

Added the cleanupUnusedCatalogs configuration. When set to true, pnpm will remove unused catalog entries during installation #9793.

Config dependency improvement

pnpm will now automatically load pnpmfiles from config dependencies that are named @*/pnpm-plugin-* #9780.

Changes to the config get/set commands

  • pnpm config get now prints an INI string for an object value #9797.

  • pnpm config get now accepts property paths.

    Misalnya:

    pnpm config get catalog.react
    pnpm config get .catalog.react
    pnpm config get 'packageExtensions["@babel/parser"].peerDependencies["@babel/types"]'

    pnpm config set now accepts dot-leading or subscripted keys.

    Misalnya:

    pnpm config set .ignoreScripts true
  • pnpm config get --json now prints a JSON serialization of config value, and pnpm config set --json now parses the input value as JSON.

Patch Changes

  • Semi-breaking. When automatically installing missing peer dependencies, prefer versions that are already present in the direct dependencies of the root workspace package #9835.
  • When executing the pnpm create command, must verify whether the node version is supported even if a cache already exists #9775.
  • When making requests for the non-abbreviated packument, add */* to the Accept header to avoid getting a 406 error on AWS CodeArtifact #9862.
  • The standalone exe version of pnpm works with glibc 2.26 again #9734.
  • Fix a regression in which pnpm dlx pkg --help doesn't pass --help to pkg #9823.

pnpm 10.14

· Satu menit membaca
Zoltan Kochan
Lead maintainer of pnpm

Added support for JavaScript runtime installation

Declare Node.js, Deno, or Bun in devEngines.runtime (inside package.json) and let pnpm download and pin it automatically.

Usage example:

{
"devEngines": {
"runtime": {
"name": "node",
"version": "^24.4.0",
"onFail": "download" // we only support the "download" value for now
}
}
}

How it works:

  1. pnpm install resolves your specified range to the latest matching runtime version.
  2. The exact version (and checksum) is saved in the lockfile.
  3. Scripts use the local runtime, ensuring consistency across environments.

Why this is better:

  1. This new setting supports also Deno and Bun (vs. our Node-only settings useNodeVersion and executionEnv.nodeVersion)
  2. Supports version ranges (not just a fixed version).
  3. The resolved version is stored in the pnpm lockfile, along with an integrity checksum for future validation of the Node.js content's validity.
  4. It can be used on any workspace project (like executionEnv.nodeVersion). So, different projects in a workspace can use different runtimes.
  5. For now devEngines.runtime setting will install the runtime locally, which we will improve in future versions of pnpm by using a shared location on the computer.

Related PR: #9755.

Other new features

  • Added --cpu, --libc, and --os to pnpm install, pnpm add, and pnpm dlx to customize supportedArchitectures via the CLI #7510.

Bug Fixes

  • Fix a bug in which pnpm add downloads packages whose libc differ from pnpm.supportedArchitectures.libc.
  • The integrities of the downloaded Node.js artifacts are verified #9750.
  • Allow dlx to parse CLI flags and options between the dlx command and the command to run or between the dlx command and -- #9719.
  • pnpm install --prod should removing hoisted dev dependencies #9782.
  • Fix an edge case bug causing local tarballs to not re-link into the virtual store. This bug would happen when changing the contents of the tarball without renaming the file and running a filtered install.
  • Fix a bug causing pnpm install to incorrectly assume the lockfile is up to date after changing a local tarball that has peers dependencies.

pnpm di tahun 2022

· Satu menit membaca
Zoltan Kochan
Lead maintainer of pnpm

Ini adalah akhir tahun. Tahun yang sangat berat. Seperti yang anda ketahui, saya tinggal di Ukraina, karena perang Rusia melawan kami, sehingga lebih sulit untuk memimpin proyek ini dibandingkan tahun-tahun sebelumnya. Namun demikian, itu adalah tahun yang baik untuk pnpm. Kami mendapatkan banyak pengguna baru, kontributor, dan kami telah menerapkan banyak fitur hebat.

(ilustrasi di atas dihasilkan oleh Midjourney. Harimau melambangkan tahun harimau)

Tahun 2021 untuk pnpm

· Satu menit membaca
Zoltan Kochan
Lead maintainer of pnpm

Di penghujung tahun ini dan tahun ini merupakan sebuah tahun yang baik untuk pnpm, mari kita lihat bagaimana kelanjutannya.

Opsi konfigurasi Node-Modules dengan pnpm

· Satu menit membaca
Zoltan Kochan
Lead maintainer of pnpm

Ada banyak cara untuk membuat direktori node_modules. Tujuan anda adalah untuk membuat direktori dengan mode strict semaksimal mungkin, medkipun demikian ada opsi untuk membuat node_modules yang lebih longgar.

Flat node_modules bukan satu-satunya cara

· Satu menit membaca
Zoltan Kochan
Lead maintainer of pnpm

Pengguna baru pnpm sering bertanya kepada saya tentang struktur aneh node_modules yang dibuat pnpm. Kenapa tidak flat? Di mana semua sub-dependensi?