Passer au contenu principal

pnpm 10.14

· 2 mins à lire
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.

Exemple d'utilisation:

{
"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.

L'année 2022 pour pnpm

· 3 mins à lire
Zoltan Kochan
Lead maintainer of pnpm

C'est la fin de l'année. Une année vraiment difficile. Comme vous le savez peut-être, je vis en Ukraine, donc en raison de l'invasion russe contre nous, il était plus difficile de diriger ce projet comparé aux années précédentes. Néanmoins, ce fut une bonne année pour pnpm. Nous avons eu beaucoup de nouveaux utilisateurs, contributeurs, et nous avons implémenté de nombreuses fonctionnalités intéressantes.

(l'illustration ci-dessus a été générée par Midjourney. Le tigre symbolise l'année du tigre)

L'année 2021 pour pnpm

· 3 mins à lire
Zoltan Kochan
Lead maintainer of pnpm

C'est la fin de l'année et ce fut une bonne année pour pnpm, alors voyons comment elle s'est déroulée.

Options de configuration des node_modules avec pnpm

· 2 mins à lire
Zoltan Kochan
Lead maintainer of pnpm

Il existe de nombreuses façons de créer un dossier node_modules. Votre objectif doit être de créer le plus strict, mais si ce n'est pas possible, il y a aussi des options pour faire un node_modules en vrac.

Flat node_modules n'est pas le seul moyen

· 3 mins à lire
Zoltan Kochan
Lead maintainer of pnpm

Les nouveaux utilisateurs de pnpm me posent souvent des questions sur la structure bizarre du dossier node_modules que pnpm créé. Pourquoi n'est-il pas plat ? Où sont toutes les sous-dépendances ?