Skip to content

Commit cba60de

Browse files
authored
translate: 2026-05-24 article (#1380)
1 parent 1645a07 commit cba60de

1 file changed

Lines changed: 258 additions & 0 deletions

File tree

Lines changed: 258 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,258 @@
1+
---
2+
title: "2026-05-24: pnpm 11.1 ~ 11.3, npm CLI v11.15.0, Deno 2.8"
3+
author: "azu"
4+
translator: rewrite0w0
5+
layout: post
6+
date: 2026-05-25T01:03:40.989Z
7+
category: JSer
8+
tags:
9+
- pnpm
10+
- npm
11+
- nodejs
12+
- security
13+
- CLI
14+
15+
---
16+
17+
JSer.info #772 - pnpm 11.1부터 11.3까지, 공급망 보안 관련 기능이 다수 추가되었다.
18+
19+
- [Release pnpm 11.1 · pnpm/pnpm](https://github.com/pnpm/pnpm/releases/tag/v11.1.0)
20+
- [Release pnpm 11.1.3 · pnpm/pnpm](https://github.com/pnpm/pnpm/releases/tag/v11.1.3)
21+
- [pnpm 11.3 | pnpm](https://pnpm.io/blog/releases/11.3)
22+
23+
pnpm 11.1에는 레지스트리 서명 검증하는 `pnpm audit signatures` 명령어가 추가되고, 11.1.3에는 설치할 때 lockfile의 엔트리를 `minimumReleaseAge`으로 재검증하는 구조로 `minimumReleaseAgeStrict` 모드 도입된다. 11.3에는 Staged Publishing용 `pnpm stage` 명령어와, 신뢰된 lockfile 검증 스킵하는 `trustLockfile` 설정이 추가된다.
24+
25+
---
26+
27+
npm CLI v11.15.0가 출시되었다.
28+
29+
- [Release v11.15.0 · npm/cli](https://github.com/npm/cli/releases/tag/v11.15.0)
30+
31+
Staged Publishing위한 `npm stage` 명령어 추가된다. Staged Publishing은, 패키지 공개 전에 승인 단계를 추가하는 구조로, 스테이징으로 송신한 후에 관리자가 2FA로 승인하고 레지스트리 공개된다. 또한, 설치할 때 행동을 제어하는 `allow-git`/`allow-file`/`allow-directory`/`allow-remote` 설정이 추가된다.
32+
33+
- [Staged publishing for npm packages](https://docs.npmjs.com/staged-publishing)
34+
35+
---
36+
37+
Deno 2.8가 출시되었다.
38+
39+
- [Deno 2.8 | Deno](https://deno.com/blog/v2.8)
40+
41+
`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:` 프로토콜에서 모노레포 의존 버전을 일원화 관리한다.
42+
43+
----
44+
{% include inline-support.html %}
45+
46+
----
47+
<h1 class="site-genre">헤드라인</h1>
48+
49+
----
50+
51+
## Release v1.60.0 · microsoft/playwright
52+
[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")
53+
<p class="jser-tags jser-tag-icon"><span class="jser-tag">playwright</span> <span class="jser-tag">ReleaseNote</span></p>
54+
55+
playwright v1.60.0 출시.
56+
파괴적 변경으로, `Locator.ariaRef()`, bindings의 `handle` 옵션, `videosPath`/`videoSize` 같은 deprecated한 API 삭제.
57+
`tracing.startHar()`/`tracing.stopHar()`으로 HAR 기록 지원, 외부에서 드랙&드롭을 시뮬레이터 하는 `locator.drop()` 추가.
58+
`expect(page).toMatchAriaSnapshot()`를 Page에서 이용 가능, `boxes` 옵션으로 경계 박스 정보 포함.
59+
테스트를 중단하는 `test.abort()`, `browser.on('context')` 이벤트와 BrowserContext 라이프사이클 이벤트 추가
60+
61+
62+
----
63+
64+
## Release pnpm 11.1 · pnpm/pnpm
65+
[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")
66+
<p class="jser-tags jser-tag-icon"><span class="jser-tag">pnpm</span> <span class="jser-tag">ReleaseNote</span></p>
67+
68+
pnpm v11.1.0 출시.
69+
레지스트리 서명을 검증하는 `pnpm audit signatures` 명령어, `namedRegistries`에 의한 레지스트리 프레픽스 지정(`gh:@acme/private` 등등) 지원.
70+
`pnpm bugs`/`pnpm owner` 명령어 추가.
71+
SBOM 사양 버전을 지정하는 `--sbom-spec-version`, 런타임 설치할 때 스킵하는 `--no-runtime` 플래그 추가.
72+
73+
74+
----
75+
76+
## Release vite-plus v0.1.21 — Create, Migrate &amp; Local CLI Power-Up · voidzero-dev/vite-plus
77+
[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")
78+
<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>
79+
80+
vite-plus v0.1.21 출시.
81+
`vp pm` 명령어가 로컬 CLI으로 동작하고, `vp migrate`은 named catalogs 갈아 끼우기나`tsdown/client`의 import 자료형 설정 이행에 대응.
82+
`vp create``@org` 형식 스코프 조건 템플릿 지원.
83+
Nushell 대응, `vp pm plugin`의 yarn 지원, `--provenance` 플래그, Windows의 `.cmd` 심경유의 PowerShell 실행 추가.
84+
pnpm v11+에서 `--ignore-scripts` 자동 부여, `vite-plus/pack/client` 추가
85+
86+
87+
----
88+
89+
## Bun v1.3.14 | Bun Blog
90+
[bun.com/blog/bun-v1.3.14](https://bun.com/blog/bun-v1.3.14 "Bun v1.3.14 | Bun Blog")
91+
<p class="jser-tags jser-tag-icon"><span class="jser-tag">Bun</span> <span class="jser-tag">ReleaseNote</span></p>
92+
93+
Bun v1.3.14 출시.
94+
이미지 리사이즈/회전/포맷 변환에 대응한 이미지 처리 API `Bun.Image` 추가.
95+
`Bun.serve()`가 HTTP/3 over QUIC에 대응, `fetch()`가 실험적으로 HTTP/2와 HTTP/3 프로토콜 지원.
96+
isolated linker의 globalStore 옵션 추가, 부모 프로세스 종료할 때 Bun 프로세스 트리 종료하는 `--no-orphans` 플래그 추가.
97+
Node.js v24 호환의 `process.execve()`, Windows에서 `Bun.Terminal`(ConPTY), FreeBSD/Android 공식 빌드 제공
98+
99+
100+
----
101+
102+
## Release pnpm 11.1.3 · pnpm/pnpm
103+
[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")
104+
<p class="jser-tags jser-tag-icon"><span class="jser-tag">pnpm</span> <span class="jser-tag">ReleaseNote</span></p>
105+
106+
pnpm v11.1.3 출시.
107+
설치할 때 `pnpm-lock.yaml`의 엔트리를 `minimumReleaseAge``trustPolicy`으로 재검증하도록 변경 `minimumReleaseAgeStrict` 모드 추가.
108+
`pnpm self-update``minimumReleaseAge`를 존중하도록 변경, `NODE_AUTH_TOKEN` 미설정할 때 OIDC 인증 실패를 수정.
109+
110+
111+
----
112+
113+
## Node.js — Node.js 26.2.0 (Current)
114+
[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)")
115+
<p class="jser-tags jser-tag-icon"><span class="jser-tag">nodejs</span> <span class="jser-tag">ReleaseNote</span></p>
116+
117+
Node.js 26.2.0 출시.
118+
`fs.Stats``BigIntStats``Temporal.Instant` 지원, HTTP의 `writeInformation` 메서드로 임의의 1xx 상태 코드를 송신하도록.
119+
`stream.compose`가 Stable으로 변경, Web Cryptography API로 ML-DSA/ML-KEM/ChaCha20-Poly1305 알고리즘 추가
120+
121+
122+
----
123+
124+
## Release v11.15.0 · npm/cli
125+
[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")
126+
<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>
127+
128+
npm CLI v11.15.0 출시.
129+
Staged Publishing 위한 `npm stage` 명령어 추가, `trust` 명령어로 permissions 지원 추가.
130+
설치할 때 행동을 제어하는 `allow-git`/`allow-file`/`allow-directory`/`allow-remote` 설정 추가.
131+
132+
- [Staged publishing for npm packages](https://docs.npmjs.com/staged-publishing "Staged publishing for npm packages")
133+
134+
----
135+
136+
## Release @apollo/client@4.2.0 · apollographql/apollo-client
137+
[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")
138+
<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>
139+
140+
Apollo Client 4.2.0 출시.
141+
hook이나 메서드의 시그니처에, `defaultOptions` 반영하는 "modern" 스타일 추가.
142+
`RefetchEventManager` 클래스 추가, window의 focus이나 네트워크 재연결같은 이벤트에 대응한 쿼리 자동재취득을 지원.
143+
`client.query`/`client.mutate`/`useMutation`/`preloadQuery` 반환값을 자료형에 `defaultOptions`을 반영하도록 개선.
144+
145+
146+
----
147+
148+
## pnpm 11.3 | pnpm
149+
[pnpm.io/blog/releases/11.3](https://pnpm.io/blog/releases/11.3 "pnpm 11.3 | pnpm")
150+
<p class="jser-tags jser-tag-icon"><span class="jser-tag">pnpm</span> <span class="jser-tag">ReleaseNote</span></p>
151+
152+
pnpm 11.3 출시.
153+
Staged Publishing용으로 `pnpm stage` 명령어, 신뢰된 lockfile 검증을 스킵하는 `trustLockfile` 설정 추가.
154+
`pnpm pkg`/`pnpm repo`/`pnpm set-script`를 네이티브 구현으로 변경, `pnpm publish`으로 `--skip-manifest-obfuscation` 플래그 추가
155+
156+
157+
----
158+
159+
## Deno 2.8 | Deno
160+
[deno.com/blog/v2.8](https://deno.com/blog/v2.8 "Deno 2.8 | Deno")
161+
<p class="jser-tags jser-tag-icon"><span class="jser-tag">deno</span> <span class="jser-tag">ReleaseNote</span></p>
162+
163+
Deno 2.8 출시.
164+
`deno audit fix`/`deno bump-version`/`deno ci`/`deno pack`/`deno transpile`/`deno why` 새로운 서브 명령어 추가.
165+
Node.js 호환성 테스트 스위츠 합격률이 42%에서 76.4%으로 개선, Stage 3의 `import defer` 구현.
166+
CLI으로 `npm:` 프레픽스 필요없도록, `catalog:` 지원, `--os`/`--arch` 플래그로 크로스 플랫폼 설치에 대응.
167+
`OffscreenCanvas`이나 `DOMPoint` 같은 Web API 추가, Chrome DevTools에서 네트워크 디버그나 CPU 프로파일링을 지원.
168+
169+
170+
----
171+
<h1 class="site-genre">읽읅거리</h1>
172+
173+
----
174+
175+
## Postmortem: TanStack npm supply-chain compromise | TanStack Blog
176+
[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")
177+
<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>
178+
179+
2026년 5월 11일에 발생한 TanStack의 npm 패키지 공급망 공격 포스트모템.
180+
`pull_request_target` 워크 플로우 설정 부족, GitHub Actions 캐쉬 포이즈닝을 얹은 공격 수법에 대하여.
181+
포크에서 PR을 실행한 코드가 pnpm 캐시를 오염시키고, 후에 출시 워크 플로우에 악의 있는 바이너리 복원시킴.
182+
`/proc/` 경유로 런너 프로세스 메모리에서 OIDC 토큰 추출해 npm publish에 이용됨.
183+
대책으로 `pull_request_target` 사용한 워크 플로우 감시, 서드파티 Action 커밋 해쉬 고정하는 방법 등 들고 있음.
184+
185+
186+
----
187+
188+
## 9 Times the Web Platform Was Influenced by Libraries | Jad Joubran
189+
[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")
190+
<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>
191+
192+
Web 플랫폼 네이티브 API가 라이브러리에 받은 영향 9가지 사례 소개하는 글.
193+
jQuery/Sizzle의 CSS 셀렉터가 `querySelector`, Bootstrap의 `data-toggle``popovertarget`/`command` 속성.
194+
jQuery의 `.addClass()``classList`, Lodash/Underscore 메서드가 `String`/`Array` 메서드로.
195+
추가로 `structuredClone`, Promises/A+ 표준화, ES Modules 설계.
196+
Moment.js 과제에서 `Temporal API`, jQuery의 `.closest()`에서 `Element.closest()`.
197+
198+
199+
----
200+
201+
## Node.js — Axios to WHATWG Fetch
202+
[nodejs.org/en/blog/migrations/axios-to-fetch](https://nodejs.org/en/blog/migrations/axios-to-fetch "Node.js — Axios to WHATWG Fetch")
203+
<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>
204+
205+
Axios에서 Node.js Fetch API으로 이행 가이드.
206+
Node.js v18.0.0 이후 전제, `axios.get()`/`axios.post()`/`axios.put()`/`axios.delete()`이나 폼 송신 같은 코드 변환 예시로 설명.
207+
인터셉터나 캔슬 토큰 등 일부 기능은 미대응인 점에 대해서도 설명
208+
209+
210+
----
211+
212+
## Introducing Secure Registry: install-time defense for the npm supply chain - StepSecurity
213+
[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")
214+
<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>
215+
216+
StepSecurity에 의한 npm 공급망 공격에 대한 설치 방어하는 Proxy 타입 레지스트리 서비스.
217+
레지스트리 패키지 취득 요구를 프록시로 평가, 신규 공개에서 일정 시간 블록하는 쿨타임 기한, 위험한 패키지를 블록, typosquatting 대책 기능 제공.
218+
로컬 개발 환경, CI/CD 파이프라인에서 이용을 상정.
219+
220+
221+
----
222+
223+
## nkzw-tech/fate: fate is a modern data client for React.
224+
[github.com/nkzw-tech/fate](https://github.com/nkzw-tech/fate "nkzw-tech/fate: fate is a modern data client for React.")
225+
<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>
226+
227+
React 데이터 클라이언트 라이브러리.
228+
Relay/GraphQL 설계에서 영향을 받아, 컴포넌트째로 `view` 데이터 선언, 정규화 캐시와 데이터 마스킹 제공.
229+
Async React(Actions/Suspense/`use`) 대응, 페이지네이션, Optimistic Updates, Server-Sent Events 갱신 지원.
230+
백엔드로 GraphQL/tRPC/Prisma/Drizzle 대응.
231+
232+
233+
----
234+
235+
## Announcing Web Serial Support in Firefox - Mozilla Hacks - the Web developer blog
236+
[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")
237+
<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>
238+
239+
Firefox 151에서 Web Serial API 지원.
240+
Web Serial API은 JavaScript에서 시리얼라이즈 디바이스 읽는 API로, USB나 Bluetooth에서 접속한 마이콘, 3D 프린터, 스마트 메타 등 직접 접근 가능.
241+
유저가 명시적으로 허용하는 포트만 접근 가능, 사이트and포트 마다 권한 관리.
242+
243+
244+
----
245+
<h1 class="site-genre">소프트웨어, 도구, 라이브러리</h1>
246+
247+
----
248+
249+
## tmikov/hermes-node: Node.js built-in module compatibility layer for the Hermes JS engine
250+
[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")
251+
<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>
252+
253+
Hermes를 기반으로 한 Node.js 호환 JavaScript/TypeScript 런타임.
254+
TypeScript 파일을 직접 실행, Chrome DevTools 프로토콜 대응한 디버그를 내장.
255+
`fs`/`http`/`net`/`path`/`stream` 같은 Node.js 코어 모듈은, Node.js 내부 JS 구현을 그대로 이용.
256+
257+
258+
----

0 commit comments

Comments
 (0)