Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,258 @@
---
title: "2026-05-24: pnpm 11.1 ~ 11.3, npm CLI v11.15.0, Deno 2.8"
author: "azu"
translator: rewrite0w0
layout: post
date: 2026-05-25T01:03:40.989Z
category: JSer
tags:
- pnpm
- npm
- nodejs
- security
- CLI

---

JSer.info #772 - pnpm 11.1부터 11.3까지, 공급망 보안 관련 기능이 다수 추가되었다.

- [Release pnpm 11.1 · pnpm/pnpm](https://github.com/pnpm/pnpm/releases/tag/v11.1.0)
- [Release pnpm 11.1.3 · pnpm/pnpm](https://github.com/pnpm/pnpm/releases/tag/v11.1.3)
- [pnpm 11.3 | pnpm](https://pnpm.io/blog/releases/11.3)

pnpm 11.1에는 레지스트리 서명 검증하는 `pnpm audit signatures` 명령어가 추가되고, 11.1.3에는 설치할 때 lockfile의 엔트리를 `minimumReleaseAge`으로 재검증하는 구조로 `minimumReleaseAgeStrict` 모드 도입된다. 11.3에는 Staged Publishing용 `pnpm stage` 명령어와, 신뢰된 lockfile 검증 스킵하는 `trustLockfile` 설정이 추가된다.

---

npm CLI v11.15.0가 출시되었다.

- [Release v11.15.0 · npm/cli](https://github.com/npm/cli/releases/tag/v11.15.0)

Staged Publishing위한 `npm stage` 명령어 추가된다. Staged Publishing은, 패키지 공개 전에 승인 단계를 추가하는 구조로, 스테이징으로 송신한 후에 관리자가 2FA로 승인하고 레지스트리 공개된다. 또한, 설치할 때 행동을 제어하는 `allow-git`/`allow-file`/`allow-directory`/`allow-remote` 설정이 추가된다.

- [Staged publishing for npm packages](https://docs.npmjs.com/staged-publishing)

---

Deno 2.8가 출시되었다.

- [Deno 2.8 | Deno](https://deno.com/blog/v2.8)

`deno audit fix`, `deno bump-version`, `deno ci`, `deno pack`, `deno transpile`, `deno why` 같은 새로운 서브명령어가 추가된다. Node.js 호환성 테스트스위트 합격률이 42%에서 76.4%으로 개선, Stage 3의 `import defer`를 구현했다. 또한, CLI으로 `npm:` 프레픽스가 필요없어지고, `catalog:` 프로토콜에서 모노레포 의존 버전을 일원화 관리한다.

----
{% include inline-support.html %}

----
<h1 class="site-genre">헤드라인</h1>

----

## Release v1.60.0 · microsoft/playwright
[github.com/microsoft/playwright/releases/tag/v1.60.0](https://github.com/microsoft/playwright/releases/tag/v1.60.0 "Release v1.60.0 · microsoft/playwright")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">playwright</span> <span class="jser-tag">ReleaseNote</span></p>

playwright v1.60.0 출시.
파괴적 변경으로, `Locator.ariaRef()`, bindings의 `handle` 옵션, `videosPath`/`videoSize` 같은 deprecated한 API 삭제.
`tracing.startHar()`/`tracing.stopHar()`으로 HAR 기록 지원, 외부에서 드랙&드롭을 시뮬레이터 하는 `locator.drop()` 추가.
`expect(page).toMatchAriaSnapshot()`를 Page에서 이용 가능, `boxes` 옵션으로 경계 박스 정보 포함.
테스트를 중단하는 `test.abort()`, `browser.on('context')` 이벤트와 BrowserContext 라이프사이클 이벤트 추가


----

## Release pnpm 11.1 · pnpm/pnpm
[github.com/pnpm/pnpm/releases/tag/v11.1.0](https://github.com/pnpm/pnpm/releases/tag/v11.1.0 "Release pnpm 11.1 · pnpm/pnpm")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">pnpm</span> <span class="jser-tag">ReleaseNote</span></p>

pnpm v11.1.0 출시.
레지스트리 서명을 검증하는 `pnpm audit signatures` 명령어, `namedRegistries`에 의한 레지스트리 프레픽스 지정(`gh:@acme/private` 등등) 지원.
`pnpm bugs`/`pnpm owner` 명령어 추가.
SBOM 사양 버전을 지정하는 `--sbom-spec-version`, 런타임 설치할 때 스킵하는 `--no-runtime` 플래그 추가.


----

## Release vite-plus v0.1.21 — Create, Migrate &amp; Local CLI Power-Up · voidzero-dev/vite-plus
[github.com/voidzero-dev/vite-plus/releases/tag/v0.1.21](https://github.com/voidzero-dev/vite-plus/releases/tag/v0.1.21 "Release vite-plus v0.1.21 — Create, Migrate &amp; Local CLI Power-Up · voidzero-dev/vite-plus")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">vite</span> <span class="jser-tag">CLI</span> <span class="jser-tag">Tools</span> <span class="jser-tag">ReleaseNote</span></p>

vite-plus v0.1.21 출시.
`vp pm` 명령어가 로컬 CLI으로 동작하고, `vp migrate`은 named catalogs 갈아 끼우기나`tsdown/client`의 import 자료형 설정 이행에 대응.
`vp create`은 `@org` 형식 스코프 조건 템플릿 지원.
Nushell 대응, `vp pm plugin`의 yarn 지원, `--provenance` 플래그, Windows의 `.cmd` 심경유의 PowerShell 실행 추가.
pnpm v11+에서 `--ignore-scripts` 자동 부여, `vite-plus/pack/client` 추가


----

## Bun v1.3.14 | Bun Blog
[bun.com/blog/bun-v1.3.14](https://bun.com/blog/bun-v1.3.14 "Bun v1.3.14 | Bun Blog")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">Bun</span> <span class="jser-tag">ReleaseNote</span></p>

Bun v1.3.14 출시.
이미지 리사이즈/회전/포맷 변환에 대응한 이미지 처리 API `Bun.Image` 추가.
`Bun.serve()`가 HTTP/3 over QUIC에 대응, `fetch()`가 실험적으로 HTTP/2와 HTTP/3 프로토콜 지원.
isolated linker의 globalStore 옵션 추가, 부모 프로세스 종료할 때 Bun 프로세스 트리 종료하는 `--no-orphans` 플래그 추가.
Node.js v24 호환의 `process.execve()`, Windows에서 `Bun.Terminal`(ConPTY), FreeBSD/Android 공식 빌드 제공


----

## Release pnpm 11.1.3 · pnpm/pnpm
[github.com/pnpm/pnpm/releases/tag/v11.1.3](https://github.com/pnpm/pnpm/releases/tag/v11.1.3 "Release pnpm 11.1.3 · pnpm/pnpm")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">pnpm</span> <span class="jser-tag">ReleaseNote</span></p>

pnpm v11.1.3 출시.
설치할 때 `pnpm-lock.yaml`의 엔트리를 `minimumReleaseAge`와 `trustPolicy`으로 재검증하도록 변경 `minimumReleaseAgeStrict` 모드 추가.
`pnpm self-update`가 `minimumReleaseAge`를 존중하도록 변경, `NODE_AUTH_TOKEN` 미설정할 때 OIDC 인증 실패를 수정.


----

## Node.js — Node.js 26.2.0 (Current)
[nodejs.org/en/blog/release/v26.2.0](https://nodejs.org/en/blog/release/v26.2.0 "Node.js — Node.js 26.2.0 (Current)")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">nodejs</span> <span class="jser-tag">ReleaseNote</span></p>

Node.js 26.2.0 출시.
`fs.Stats`와 `BigIntStats`가 `Temporal.Instant` 지원, HTTP의 `writeInformation` 메서드로 임의의 1xx 상태 코드를 송신하도록.
`stream.compose`가 Stable으로 변경, Web Cryptography API로 ML-DSA/ML-KEM/ChaCha20-Poly1305 알고리즘 추가


----

## Release v11.15.0 · npm/cli
[github.com/npm/cli/releases/tag/v11.15.0](https://github.com/npm/cli/releases/tag/v11.15.0 "Release v11.15.0 · npm/cli")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">npm</span> <span class="jser-tag">CLI</span> <span class="jser-tag">ReleaseNote</span></p>

npm CLI v11.15.0 출시.
Staged Publishing 위한 `npm stage` 명령어 추가, `trust` 명령어로 permissions 지원 추가.
설치할 때 행동을 제어하는 `allow-git`/`allow-file`/`allow-directory`/`allow-remote` 설정 추가.

- [Staged publishing for npm packages](https://docs.npmjs.com/staged-publishing "Staged publishing for npm packages")

----

## Release @apollo/client@4.2.0 · apollographql/apollo-client
[github.com/apollographql/apollo-client/releases/tag/%40apollo%2Fclient%404.2.0](https://github.com/apollographql/apollo-client/releases/tag/%40apollo%2Fclient%404.2.0 "Release @apollo/client@4.2.0 · apollographql/apollo-client")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">JavaScript</span> <span class="jser-tag">library</span> <span class="jser-tag">ReleaseNote</span> <span class="jser-tag">GraphQL</span></p>

Apollo Client 4.2.0 출시.
hook이나 메서드의 시그니처에, `defaultOptions` 반영하는 "modern" 스타일 추가.
`RefetchEventManager` 클래스 추가, window의 focus이나 네트워크 재연결같은 이벤트에 대응한 쿼리 자동재취득을 지원.
`client.query`/`client.mutate`/`useMutation`/`preloadQuery` 반환값을 자료형에 `defaultOptions`을 반영하도록 개선.


----

## pnpm 11.3 | pnpm
[pnpm.io/blog/releases/11.3](https://pnpm.io/blog/releases/11.3 "pnpm 11.3 | pnpm")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">pnpm</span> <span class="jser-tag">ReleaseNote</span></p>

pnpm 11.3 출시.
Staged Publishing용으로 `pnpm stage` 명령어, 신뢰된 lockfile 검증을 스킵하는 `trustLockfile` 설정 추가.
`pnpm pkg`/`pnpm repo`/`pnpm set-script`를 네이티브 구현으로 변경, `pnpm publish`으로 `--skip-manifest-obfuscation` 플래그 추가


----

## Deno 2.8 | Deno
[deno.com/blog/v2.8](https://deno.com/blog/v2.8 "Deno 2.8 | Deno")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">deno</span> <span class="jser-tag">ReleaseNote</span></p>

Deno 2.8 출시.
`deno audit fix`/`deno bump-version`/`deno ci`/`deno pack`/`deno transpile`/`deno why` 새로운 서브 명령어 추가.
Node.js 호환성 테스트 스위츠 합격률이 42%에서 76.4%으로 개선, Stage 3의 `import defer` 구현.
CLI으로 `npm:` 프레픽스 필요없도록, `catalog:` 지원, `--os`/`--arch` 플래그로 크로스 플랫폼 설치에 대응.
`OffscreenCanvas`이나 `DOMPoint` 같은 Web API 추가, Chrome DevTools에서 네트워크 디버그나 CPU 프로파일링을 지원.


----
<h1 class="site-genre">읽읅거리</h1>

----

## Postmortem: TanStack npm supply-chain compromise | TanStack Blog
[tanstack.com/blog/npm-supply-chain-compromise-postmortem](https://tanstack.com/blog/npm-supply-chain-compromise-postmortem "Postmortem: TanStack npm supply-chain compromise | TanStack Blog")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">TanStack</span> <span class="jser-tag">npm</span> <span class="jser-tag">security</span> <span class="jser-tag">Actions</span> <span class="jser-tag">article</span></p>

2026년 5월 11일에 발생한 TanStack의 npm 패키지 공급망 공격 포스트모템.
`pull_request_target` 워크 플로우 설정 부족, GitHub Actions 캐쉬 포이즈닝을 얹은 공격 수법에 대하여.
포크에서 PR을 실행한 코드가 pnpm 캐시를 오염시키고, 후에 출시 워크 플로우에 악의 있는 바이너리 복원시킴.
`/proc/` 경유로 런너 프로세스 메모리에서 OIDC 토큰 추출해 npm publish에 이용됨.
대책으로 `pull_request_target` 사용한 워크 플로우 감시, 서드파티 Action 커밋 해쉬 고정하는 방법 등 들고 있음.


----

## 9 Times the Web Platform Was Influenced by Libraries | Jad Joubran
[jadjoubran.io/blog/web-platform-influenced-by-libraries](https://jadjoubran.io/blog/web-platform-influenced-by-libraries "9 Times the Web Platform Was Influenced by Libraries | Jad Joubran")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">WebPlatformAPI</span> <span class="jser-tag">JavaScript</span> <span class="jser-tag">library</span> <span class="jser-tag">history</span> <span class="jser-tag">article</span></p>

Web 플랫폼 네이티브 API가 라이브러리에 받은 영향 9가지 사례 소개하는 글.
jQuery/Sizzle의 CSS 셀렉터가 `querySelector`, Bootstrap의 `data-toggle`이 `popovertarget`/`command` 속성.
jQuery의 `.addClass()`가 `classList`, Lodash/Underscore 메서드가 `String`/`Array` 메서드로.
추가로 `structuredClone`, Promises/A+ 표준화, ES Modules 설계.
Moment.js 과제에서 `Temporal API`, jQuery의 `.closest()`에서 `Element.closest()`.


----

## Node.js — Axios to WHATWG Fetch
[nodejs.org/en/blog/migrations/axios-to-fetch](https://nodejs.org/en/blog/migrations/axios-to-fetch "Node.js — Axios to WHATWG Fetch")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">nodejs</span> <span class="jser-tag">Fetch</span> <span class="jser-tag">HTTP</span> <span class="jser-tag">article</span></p>

Axios에서 Node.js Fetch API으로 이행 가이드.
Node.js v18.0.0 이후 전제, `axios.get()`/`axios.post()`/`axios.put()`/`axios.delete()`이나 폼 송신 같은 코드 변환 예시로 설명.
인터셉터나 캔슬 토큰 등 일부 기능은 미대응인 점에 대해서도 설명


----

## Introducing Secure Registry: install-time defense for the npm supply chain - StepSecurity
[www.stepsecurity.io/blog/introducing-secure-registry-install-time-defense-for-the-npm-supply-chain](https://www.stepsecurity.io/blog/introducing-secure-registry-install-time-defense-for-the-npm-supply-chain "Introducing Secure Registry: install-time defense for the npm supply chain - StepSecurity")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">npm</span> <span class="jser-tag">security</span> <span class="jser-tag">article</span></p>

StepSecurity에 의한 npm 공급망 공격에 대한 설치 방어하는 Proxy 타입 레지스트리 서비스.
레지스트리 패키지 취득 요구를 프록시로 평가, 신규 공개에서 일정 시간 블록하는 쿨타임 기한, 위험한 패키지를 블록, typosquatting 대책 기능 제공.
로컬 개발 환경, CI/CD 파이프라인에서 이용을 상정.


----

## nkzw-tech/fate: fate is a modern data client for React.
[github.com/nkzw-tech/fate](https://github.com/nkzw-tech/fate "nkzw-tech/fate: fate is a modern data client for React.")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">React</span> <span class="jser-tag">library</span> <span class="jser-tag">TypeScript</span> <span class="jser-tag">GraphQL</span></p>

React 데이터 클라이언트 라이브러리.
Relay/GraphQL 설계에서 영향을 받아, 컴포넌트째로 `view` 데이터 선언, 정규화 캐시와 데이터 마스킹 제공.
Async React(Actions/Suspense/`use`) 대응, 페이지네이션, Optimistic Updates, Server-Sent Events 갱신 지원.
백엔드로 GraphQL/tRPC/Prisma/Drizzle 대응.


----

## Announcing Web Serial Support in Firefox - Mozilla Hacks - the Web developer blog
[hacks.mozilla.org/2026/05/web-serial-support-in-firefox/](https://hacks.mozilla.org/2026/05/web-serial-support-in-firefox/ "Announcing Web Serial Support in Firefox - Mozilla Hacks - the Web developer blog")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">Firefox</span> <span class="jser-tag">browser</span> <span class="jser-tag">WebAPI</span> <span class="jser-tag">Mozilla</span></p>

Firefox 151에서 Web Serial API 지원.
Web Serial API은 JavaScript에서 시리얼라이즈 디바이스 읽는 API로, USB나 Bluetooth에서 접속한 마이콘, 3D 프린터, 스마트 메타 등 직접 접근 가능.
유저가 명시적으로 허용하는 포트만 접근 가능, 사이트and포트 마다 권한 관리.


----
<h1 class="site-genre">소프트웨어, 도구, 라이브러리</h1>

----

## tmikov/hermes-node: Node.js built-in module compatibility layer for the Hermes JS engine
[github.com/tmikov/hermes-node](https://github.com/tmikov/hermes-node "tmikov/hermes-node: Node.js built-in module compatibility layer for the Hermes JS engine")
<p class="jser-tags jser-tag-icon"><span class="jser-tag">nodejs</span> <span class="jser-tag">JavaScript</span> <span class="jser-tag">TypeScript</span> <span class="jser-tag">library</span></p>

Hermes를 기반으로 한 Node.js 호환 JavaScript/TypeScript 런타임.
TypeScript 파일을 직접 실행, Chrome DevTools 프로토콜 대응한 디버그를 내장.
`fs`/`http`/`net`/`path`/`stream` 같은 Node.js 코어 모듈은, Node.js 내부 JS 구현을 그대로 이용.


----
Loading