|
| 1 | +--- |
| 2 | +title: "2026-06-09: pnpm 11.5, Node.js 26.3.0, Cloudflare가 VoidZero 매수" |
| 3 | +author: "azu" |
| 4 | +translator: rewrite0w0 |
| 5 | +layout: post |
| 6 | +date : 2026-06-09T03:06:21.608Z |
| 7 | +category: JSer |
| 8 | +tags: |
| 9 | +- pnpm |
| 10 | +- nodejs |
| 11 | +- cloudflare |
| 12 | +- vite |
| 13 | +- news |
| 14 | + |
| 15 | +--- |
| 16 | + |
| 17 | +JSer.info #773 - pnpm 11.5 출시되었다. |
| 18 | + |
| 19 | +- [Release pnpm 11.5 · pnpm/pnpm](https://github.com/pnpm/pnpm/releases/tag/v11.5.0) |
| 20 | + |
| 21 | +새로운 기능으로, `nodeLinker: hoisted` 대상 hoist 범위 제한하는 `hoistingLimits` 설정이 추가되었다. |
| 22 | +또한, 대화 프롬프트 개선과 Staged publishing 대응 개선이 포함된다. |
| 23 | +수정으로, 얼라이어스 설치할 때 peer 문제 해결, `pnpm dist-tag`에서 2FA 대응, `minimumReleaseAgeExclude` 다루기, 리모트 HTTPS tarball 의존의 `integrity` 필드 보존이 포함된다. |
| 24 | + |
| 25 | +--- |
| 26 | + |
| 27 | +Node.js v26.3.0 (Current) 출시되었다. |
| 28 | + |
| 29 | +- [Node.js — Node.js 26.3.0 (Current)](https://nodejs.org/en/blog/release/v26.3.0) |
| 30 | + |
| 31 | +`Buffer.poolSize` 기본 값이 64 KiB으로 변경되었다. |
| 32 | +새로운 기능으로, HTTP 헤더 값 검증을 커스터마이즈하는 `httpValidation` 옵션, 권한 파기하는 `permission.drop`이 추가된다. |
| 33 | +또한, Staged Publishing를 지원하는 npm 11.16.0으로 업데이트 된다. |
| 34 | + |
| 35 | +--- |
| 36 | + |
| 37 | +Cloudflare가 Vite나 Oxc 개발하는 VoidZero 매수를 발표했다. |
| 38 | + |
| 39 | +- [VoidZero is joining Cloudflare](https://blog.cloudflare.com/voidzero-joins-cloudflare/) |
| 40 | +- [VoidZero is Joining Cloudflare | VoidZero](https://voidzero.dev/posts/voidzero-cloudflare) |
| 41 | + |
| 42 | +Vite, Vitest, Rolldown, Oxc, Vite+ 각 프로젝트는 MIT 라이센스 오픈소스인 채로 개발 지속할 예정이다. |
| 43 | +VoidZero가 개발하고 있는 Vite 배포 플랫폼 [Void](https://void.cloud/)은, 오픈소스인로 공개될 예정. |
| 44 | + |
| 45 | +---- |
| 46 | +{% include inline-support.html %} |
| 47 | + |
| 48 | +---- |
| 49 | + |
| 50 | +<h1 class="site-genre">헤드라인</h1> |
| 51 | + |
| 52 | +---- |
| 53 | + |
| 54 | +## Release pnpm 11.5 · pnpm/pnpm |
| 55 | +[github.com/pnpm/pnpm/releases/tag/v11.5.0](https://github.com/pnpm/pnpm/releases/tag/v11.5.0 "Release pnpm 11.5 · pnpm/pnpm") |
| 56 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">pnpm</span> <span class="jser-tag">ReleaseNote</span></p> |
| 57 | + |
| 58 | +pnpm 11.5 출시. |
| 59 | +`nodeLinker: hoisted` 대상으로 hoist 범위 제한하는 `hoistingLimits` 설정 추가. |
| 60 | +대화 프롬프트 개선, Staged publishing 대응 개선. |
| 61 | +얼라이어스 설치할 때 peer 문제 해결, `pnpm dist-tag` 2FA 대응 수정. |
| 62 | +`minimumReleaseAgeExclude` 다룸, 리모트 HTTPS tarball 의존의 `integrity` 필드 보존 수정. |
| 63 | + |
| 64 | + |
| 65 | +---- |
| 66 | + |
| 67 | +## Node.js — Node.js 26.3.0 (Current) |
| 68 | +[nodejs.org/en/blog/release/v26.3.0](https://nodejs.org/en/blog/release/v26.3.0 "Node.js — Node.js 26.3.0 (Current)") |
| 69 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">nodejs</span> <span class="jser-tag">ReleaseNote</span></p> |
| 70 | + |
| 71 | +Node.js v26.3.0 (Current) 출시. |
| 72 | +`Buffer.poolSize` 기본 64 KiB으로 변경. |
| 73 | +HTTP 헤더 값을 검증하는 커스터마이즈하는 `httpValidation` 옵션, 권한을 파기하는 `permission.drop` 추가. |
| 74 | +Staged Publishing 지원하는 npm 11.16.0으로 업데이트 |
| 75 | + |
| 76 | + |
| 77 | +---- |
| 78 | + |
| 79 | +## Node.js — Node.js 24.16.0 (LTS) |
| 80 | +[nodejs.org/en/blog/release/v24.16.0](https://nodejs.org/en/blog/release/v24.16.0 "Node.js — Node.js 24.16.0 (LTS)") |
| 81 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">nodejs</span> <span class="jser-tag">ReleaseNote</span></p> |
| 82 | + |
| 83 | +Node.js v24.16.0 (LTS) 출시. |
| 84 | +`crypto.randomUUIDv7()`으로 UUID v7 생성, `fs.stat()`으로 `signal` 옵션, `util.styleText()`의 16진수 컬러 대응 추가. |
| 85 | +Test Runner에 테스트 실행 순서 랜덤화 맟 `AbortSignal.timeout` 대상 목 타이머 추가, `IncomingMessage`에 `req.signal` 추가 |
| 86 | + |
| 87 | + |
| 88 | +---- |
| 89 | + |
| 90 | +## Chrome 150 beta | Blog | Chrome for Developers |
| 91 | +[developer.chrome.com/blog/chrome-150-beta?hl=en](https://developer.chrome.com/blog/chrome-150-beta?hl=en "Chrome 150 beta | Blog | Chrome for Developers") |
| 92 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">Chrome</span> <span class="jser-tag">browser</span> <span class="jser-tag">ReleaseNote</span> <span class="jser-tag">css</span></p> |
| 93 | + |
| 94 | +Chrome 150 beta 출시. |
| 95 | +CSS의 `text-fit` 프로퍼티, `background-clip: border-area`에 의한 그라데이션 보더, `polygon()` 둥근 모서리 지원, `focusgroup` 속성 지원. |
| 96 | +IndexedDB 구현이 LevelDB에서 SQLite으로 변경, `data:` URL의 Worker에 고유한 opaque origin 할당하도록 변경. |
| 97 | +`SpeechRecognition`에 `quality` 옵션 추가 |
| 98 | + |
| 99 | + |
| 100 | +---- |
| 101 | + |
| 102 | +## VoidZero is joining Cloudflare |
| 103 | +[blog.cloudflare.com/voidzero-joins-cloudflare/](https://blog.cloudflare.com/voidzero-joins-cloudflare/ "VoidZero is joining Cloudflare") |
| 104 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">cloudflare</span> <span class="jser-tag">vite</span> <span class="jser-tag">news</span></p> |
| 105 | + |
| 106 | +Cloudflare가 Vite나 Oxc 등을 개발하는 VoidZero 매수. |
| 107 | + |
| 108 | +- [VoidZero is Joining Cloudflare | VoidZero](https://voidzero.dev/posts/voidzero-cloudflare "VoidZero is Joining Cloudflare | VoidZero") |
| 109 | + |
| 110 | +---- |
| 111 | +<h1 class="site-genre">읽을거리</h1> |
| 112 | + |
| 113 | +---- |
| 114 | + |
| 115 | +## Declarative partial updates | Blog | Chrome for Developers |
| 116 | +[developer.chrome.com/blog/declarative-partial-updates](https://developer.chrome.com/blog/declarative-partial-updates "Declarative partial updates | Blog | Chrome for Developers") |
| 117 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">Chrome</span> <span class="jser-tag">HTML</span> <span class="jser-tag">WebAPI</span> <span class="jser-tag">DOM</span> <span class="jser-tag">stream</span> <span class="jser-tag">article</span></p> |
| 118 | + |
| 119 | +HTMLを宣言的に部分更新するためのAPIとして提案中の`<template for>`について. |
| 120 | +`<template>`要素と`<?marker>`などの処理命令プレースホルダーを使い, ドキュメント内の順序に依存せずコンテンツを配信するOut-of-order streamingについて. |
| 121 | +合わせて利用する`setHTML()`/`replaceWithHTML()`/`streamHTML()`などのJavaScript APIについても解説している. |
| 122 | +Chrome 148以降のフラグで利用でき, polyfillも実装されている. |
| 123 | + |
| 124 | + |
| 125 | +---- |
| 126 | + |
| 127 | +## On Rendering Diffs :: Pierre Computer Company |
| 128 | +[pierre.computer/writing/on-rendering-diffs](https://pierre.computer/writing/on-rendering-diffs "On Rendering Diffs :: Pierre Computer Company") |
| 129 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">JavaScript</span> <span class="jser-tag">performance</span> <span class="jser-tag">diff</span> <span class="jser-tag">library</span> <span class="jser-tag">article</span></p> |
| 130 | + |
| 131 | +Pierre가 개발한 diff 렌더링 라이브러리 `@pierre/diffs` 구현 해설. |
| 132 | +거대한 코드 차분을 브라우저에서 효율적으로 렌더링 하기 위해서, 가상화나 메모리 최적화 수법 작성. |
| 133 | +sticky positioning을 반전하여 스크롤 중 공백 게시를 막는 방법, 행 범위 렌더링에서 이진 탐색, DOM 요소를 재이용함으로 GC를 피하도록 제작. |
| 134 | +또한, Shiki에 의한 구문 하이라이트 Worker 쓰레드화와 LRU 캐시에 대해서도 다뤄짐. |
| 135 | + |
| 136 | + |
| 137 | +---- |
| 138 | +<h1 class="site-genre">슬라이드, 영상</h1> |
| 139 | + |
| 140 | +---- |
| 141 | + |
| 142 | +## TSKaigi 2026 발표 자료 모음 |
| 143 | +[zenn.dev/yasse/articles/a7240304af804c](https://zenn.dev/yasse/articles/a7240304af804c "TSKaigi 2026 발표 자료 모음") |
| 144 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">TypeScript</span> <span class="jser-tag">Conference</span> <span class="jser-tag">slide</span></p> |
| 145 | + |
| 146 | +TSKaigi 2026 스라이드 자료 모음. |
| 147 | + |
| 148 | +- [TSKaigi 2026](https://2026.tskaigi.org/ "TSKaigi 2026") |
| 149 | + |
| 150 | +---- |
| 151 | + |
| 152 | +## Oxlint 커스텀 규칙 현황 - Speaker Deck |
| 153 | +[speakerdeck.com/syumai/oxlint-custom-rule](https://speakerdeck.com/syumai/oxlint-custom-rule "Oxlint 커스텀 규칙 현황 - Speaker Deck") |
| 154 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">ESLint</span> <span class="jser-tag">Rust</span> <span class="jser-tag">slide</span> <span class="jser-tag">JavaScript</span></p> |
| 155 | + |
| 156 | +Oxlint 커스텀 규칙에 대한 슬라이드. |
| 157 | +Rust로 만든 Linter인 Oxlint에서, ESLint 호환 커스텀 규칙을 추가 가능한 JS Plugin(알파판)기능과 성능에 대해 소개. |
| 158 | +기존의 ESLint 플러그인 동작이나 tsgolint, corsa-bind에 대해서도 다룸 |
| 159 | + |
| 160 | + |
| 161 | +---- |
| 162 | +<h1 class="site-genre">웹사이트, 서비스, 문서</h1> |
| 163 | + |
| 164 | +---- |
| 165 | + |
| 166 | +## SoraKumo001/satoru |
| 167 | +[github.com/SoraKumo001/satoru](https://github.com/SoraKumo001/satoru "SoraKumo001/satoru") |
| 168 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">WebAssembly</span> <span class="jser-tag">HTML</span> <span class="jser-tag">css</span> <span class="jser-tag">SVG</span> <span class="jser-tag">PDF</span> <span class="jser-tag">Image</span> <span class="jser-tag">library</span></p> |
| 169 | + |
| 170 | +WebAssembly에서 동작하는 HTML를 SVG/PNG/WebP/PDF으로 변환하는 렌더링 엔진. |
| 171 | +렌더링에 Skia, 레이아웃에 litehtml 이용, CSS를 포함한 HTML을 이미지로 변환. |
| 172 | +TTF/OTF/WOFF2 포맷이나 Google Fonts 해결, PNG/JPEG/WebP/AVIF 이미지를 지원. |
| 173 | +Node.js/브라우저/Cloudflare Workers에서 실행 가능. |
| 174 | + |
| 175 | + |
| 176 | +---- |
| 177 | +<h1 class="site-genre">소프트웨어, 도구, 라이브러리</h1> |
| 178 | + |
| 179 | +---- |
| 180 | + |
| 181 | +## microsoft/Webwright: A simple SWE style browser agent framework that achieves SOTA results on long horizon web tasks. |
| 182 | +[github.com/microsoft/Webwright](https://github.com/microsoft/Webwright "microsoft/Webwright: A simple SWE style browser agent framework that achieves SOTA results on long horizon web tasks.") |
| 183 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">AI</span> <span class="jser-tag">browser</span> <span class="jser-tag">automation</span> <span class="jser-tag">playwright</span> <span class="jser-tag">library</span></p> |
| 184 | + |
| 185 | +Microsoft에서 만든 브라우저 에이전트 프레임워크. |
| 186 | +에이전트가 개별 브라우저 조작을 예측하는 것이 아닌 Playwright를 사용해 Python 코드 생성하고 실행. |
| 187 | +반복적인 에이전트 규칙과 디렉토리를 workspace으로 다뤄 매번 사용하고 버리면서 세션을 진행하는 방식 |
| 188 | + |
| 189 | + |
| 190 | +---- |
| 191 | + |
| 192 | +## pionxzh/wakaru: 🔪📦 Javascript decompiler for modern frontend |
| 193 | +[github.com/pionxzh/wakaru](https://github.com/pionxzh/wakaru "pionxzh/wakaru: 🔪📦 Javascript decompiler for modern frontend") |
| 194 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">JavaScript</span> <span class="jser-tag">Tools</span> <span class="jser-tag">webpack</span> <span class="jser-tag">bundler</span> <span class="jser-tag">esbuild</span></p> |
| 195 | + |
| 196 | +minify이나 bundle된 JavaScript를 읽기 쉬운 코드로 복원하는 컴파일러. |
| 197 | +webpack/esbuild/Bun/Browserify 같은 bundle을 모듈 단위로 분해하는 unpacker 제공. |
| 198 | +Terser/Babel/SWC 트랜스파일/압축된 코드를 복원하는 unminify나, 소스맵을 지원. |
| 199 | + |
| 200 | + |
| 201 | +---- |
| 202 | + |
| 203 | +## Shakya47/pip-it-up: Pop any UI component into a floating Picture-in-Picture window. Zero config. Auto-sizing. Framework-agnostic core. |
| 204 | +[github.com/Shakya47/pip-it-up](https://github.com/Shakya47/pip-it-up "Shakya47/pip-it-up: Pop any UI component into a floating Picture-in-Picture window. Zero config. Auto-sizing. Framework-agnostic core.") |
| 205 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">JavaScript</span> <span class="jser-tag">React</span> <span class="jser-tag">library</span></p> |
| 206 | + |
| 207 | +Document Picture-in-Picture API를 다루는 React 컴포넌트 라이브러리. |
| 208 | +리사이즈나 스타일 동기에 대응. |
| 209 | + |
| 210 | + |
| 211 | +---- |
| 212 | +<h1 class="site-genre">도서</h1> |
| 213 | + |
| 214 | +---- |
| 215 | + |
| 216 | +## 기본부터 탄탄히 배우는 프론트엔드 테스트 입문 | 기술평론사 |
| 217 | +[gihyo.jp/book/2026/978-4-297-15704-3](https://gihyo.jp/book/2026/978-4-297-15704-3 "기본부터 탄탄히 배우는 프론트엔드 테스트 입문 | 기술평론사") |
| 218 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">JavaScript</span> <span class="jser-tag">test</span> <span class="jser-tag">book</span></p> |
| 219 | + |
| 220 | +2026년 6월 26일 발매. |
| 221 | +프론트엔드 테스트에 대한 도서 |
| 222 | + |
| 223 | + |
| 224 | +---- |
0 commit comments