본문으로 건너뛰기

pnpm 10.14

· 1분 소요
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.

사용 예:

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

The year 2022 for pnpm

· 1분 소요
Zoltan Kochan
Lead maintainer of pnpm

연말이네요. 힘든 한 해였습니다. 아실지 모르겠지만 저는 우크라이나에 살고 있고 러시아와의 전쟁 때문에 예전보다 프로젝트의 진행이 어려웠습니다. 하지만 pnpm에게는 좋은 한 해였습니다. 신규 유저와 기여자가 많이 생겼고 훌륭한 기능들을 많이 구현할 수 있었습니다.

(위 이미지는 Midjourney에 의해 생성되었습니다. 호랑이는 호랑이의 해를 의미합니다)

pnpm의 2021년

· 1분 소요
Zoltan Kochan
Lead maintainer of pnpm

올해의 끝자락이고 pnpm에게는 좋은 한 해였습니다. 그러니, 어떻게 되었는지 봅시다.

pnpm을 사용한 노드 모듈 구성 옵션

· 1분 소요
Zoltan Kochan
Lead maintainer of pnpm

node_modules 디렉토리를 만드는 방법에는 여러 가지가 있습니다. 여러분의 목표는 가장 엄격한 것을 만드는 것이지만 그것이 가능하지 않다면, 느슨한 node_modules을 만드는 옵션도 있습니다.

평탄한 node_modules가 유일한 방법은 아닙니다.

· 1분 소요
Zoltan Kochan
Lead maintainer of pnpm

pnpm의 신규 사용자들이 pnpm에서 생성하는 node_modules의 특이한 구조에 대해 자주 질문합니다. 왜 플랫이 아닌가요? 모든 하위 의존성들은 어디에 있나요?