|
| 1 | +--- |
| 2 | +title: "2026-04-29: Node.js 24.15.0(LTS), Rspack 2.0, pnpm 11" |
| 3 | +author: "azu" |
| 4 | +translator: rewrite0w0 |
| 5 | +layout: post |
| 6 | +date: 2026-04-29T01:03:52.597Z |
| 7 | +category: JSer |
| 8 | +tags: |
| 9 | +- Tools |
| 10 | +- React |
| 11 | +- TypeScript |
| 12 | +- nodejs |
| 13 | +- AI |
| 14 | + |
| 15 | +--- |
| 16 | + |
| 17 | +JSer.info #770 - Node.js 24.15.0(LTS) 출시되었습니다. |
| 18 | + |
| 19 | +- [Node.js — Node.js 24.15.0 (LTS)](https://nodejs.org/en/blog/release/v24.15.0) |
| 20 | + |
| 21 | +`require(esm)`와 모듈 컴파일 캐시가 안정판(Stable)으로 승격했습니다. 또한, SQLite가 출시 후보(Release Candidate) 단계로 승격했습니다. 그 외로는, `--max-heap-size` 옵션 추가, Socket의 `setTOS`/`getTOS` 메서드 추가, `fs.stat`의 `throwIfNoEntry` 옵션 추가가 포함됩니다. |
| 22 | + |
| 23 | +--- |
| 24 | + |
| 25 | +Rspack 2.0 출시되었습니다. |
| 26 | + |
| 27 | +- [Announcing Rspack 2.0 - Rspack](https://rspack.rs/blog/announcing-2-0) |
| 28 | + |
| 29 | +`@rspack/core` 코어 패키지를 Pure ESM 패키지로 이행, CommonJS 빌드가 삭제됩니다. 빌드 성능 개선, CommonJS의 `require` 분할대입이나 프로퍼티 접근의 Tree Shaking 개선이 포함됩니다. 또한, `/*#__NO_SIDE_EFFECTS__*/` 어노테이션 지원, `library.type`에 `modern-module` 추가, React Server Components 실험적 지원도 추가됩니다. |
| 30 | + |
| 31 | +--- |
| 32 | + |
| 33 | +pnpm v11.0.0 출시되었습니다. |
| 34 | + |
| 35 | +- [Release pnpm 11 · pnpm/pnpm](https://github.com/pnpm/pnpm/releases/tag/v11.0.0) |
| 36 | + |
| 37 | +Pure ESM 패키지로 이행, Node.js 18-21 지원이 종료됩니다. `.npmrc`은 인증/레지스트리 설정만 한정하고, 그 외 설정은 `pnpm-workspace.yaml`으로 이행됩니다. npm CLI와의 의존을 배제하고 `pnpm publish`/`pnpm login`/`pnpm audit`가 네이티브 구현으로 변경되며, `pnpm ci`/`pnpm sbom`/`pnpm clean`/`pnpm pack-app` 명령어가 추가됩니다. |
| 38 | + |
| 39 | +---- |
| 40 | +{% include inline-support.html %} |
| 41 | + |
| 42 | +---- |
| 43 | +<h1 class="site-genre">헤드라인</h1> |
| 44 | + |
| 45 | +---- |
| 46 | + |
| 47 | +## v1.17.0 | React Aria |
| 48 | +[react-aria.adobe.com/releases/v1-17-0](https://react-aria.adobe.com/releases/v1-17-0 "v1.17.0 | React Aria") |
| 49 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">React</span> <span class="jser-tag">library</span> <span class="jser-tag">ReleaseNote</span></p> |
| 50 | + |
| 51 | +React Aria v1.17.0 출시. |
| 52 | +Table 전개 가능한 행 지원, Virtualizer 윈도우 스크롤 대응, 수평 방향 Virtualize 대응. |
| 53 | +개별 hook 패키지를 `react-aria`와 `react-stately`에 통합해서, 의존 패키지 수 절감. |
| 54 | +sub-path imports(`react-aria-components/Button`) 지원, 마이그레이션용 codemod도 제공. |
| 55 | +ComboBox 제네릭 타입 파라메타 지원, NumberField에 `commitBehavior` prop 추가, Select에 `shouldCloseOnSelect` 옵션 추가. |
| 56 | + |
| 57 | + |
| 58 | +---- |
| 59 | + |
| 60 | +## Node.js — Node.js 24.15.0 (LTS) |
| 61 | +[nodejs.org/en/blog/release/v24.15.0](https://nodejs.org/en/blog/release/v24.15.0 "Node.js — Node.js 24.15.0 (LTS)") |
| 62 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">nodejs</span> <span class="jser-tag">ReleaseNote</span></p> |
| 63 | + |
| 64 | +Node.js 24.15.0 출시. |
| 65 | +`require(esm)`와 모듈 컴파일 캐시 안정판으로 승격, SQLite가 출시 후보 단계로 승격. |
| 66 | +`--max-heap-size` 옵션 추가, Socket의 `setTOS`/`getTOS` 메서드 추가, `fs.stat`의 `throwIfNoEntry` 옵션 추가. |
| 67 | + |
| 68 | + |
| 69 | +---- |
| 70 | + |
| 71 | +## Bun v1.3.13 | Bun Blog |
| 72 | +[bun.com/blog/bun-v1.3.13](https://bun.com/blog/bun-v1.3.13 "Bun v1.3.13 | Bun Blog") |
| 73 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">Bun</span> <span class="jser-tag">ReleaseNote</span></p> |
| 74 | + |
| 75 | +Bun v1.3.13 출시. |
| 76 | +`bun test`에 각 테스트 파일을 독립된 글로벌 환경으로 실행하는 `--isolate` 플래그 추가. |
| 77 | +테스트를 worker 프로세스 병렬 실행하는 `--parallel`, CI 작업 간에 테스트 분리하는 `--shard`, git의 변경에 영향을 받은 것만 테스트하는 `--changed` 플래그 추가. |
| 78 | +`bun install`으로 tarball 전개를 스트리밍화하여 메모리 사용량 절감, Isolated linker에 의해 monorepo 설치 속도 개선. |
| 79 | +SHA3-224/256/384/512의 WebCrypto와 `node:crypto` 대응, `SubtleCrypto`에 X25519 키 유출 대응. |
| 80 | +WebSocket 클라이언트가 `ws+unix://`/`wss+unix://`의 Unix 도메인 소켓 접속을 지원. |
| 81 | +`Bun.serve()`으로 Range 리퀘스트 레포트, zlib-ng를 사용해 gzip 압축 성능 개선 |
| 82 | + |
| 83 | + |
| 84 | +---- |
| 85 | + |
| 86 | +## Announcing Rspack 2.0 - Rspack |
| 87 | +[rspack.rs/blog/announcing-2-0](https://rspack.rs/blog/announcing-2-0 "Announcing Rspack 2.0 - Rspack") |
| 88 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">rspack</span> <span class="jser-tag">ReleaseNote</span></p> |
| 89 | + |
| 90 | +Rspack 2.0 출시. |
| 91 | +`@rspack/core` 코어 패키지를 Pure ESM 패키지로 이행, CommonJS 빌드를 삭제. |
| 92 | +`@rspack/dev-server` 의존 숫자 삭감, 톱레벨 `target` 옵션이 Loader나 Minimizer Plugin에 자동 계승되도록 변경. |
| 93 | +빌드 성능 개선, CommonJS의 `require` 분리대입과 프로퍼티 접근의 Tree Shaking 개선. |
| 94 | +`/*#__NO_SIDE_EFFECTS__*/` 어노테이션, Module Federation 공유 의존 Export 레벨에서의 Tree Shaking 대응. |
| 95 | +`import.meta`/`import defer` 그대로 출력 가능 하도록, `library.type`에 `modern-module` 추가. |
| 96 | +React Server Components 실험적 지원, `#/` 서브패스 얼라이어스를 지원, `swc-loader`의 `detectSyntax` 옵션 추가 |
| 97 | + |
| 98 | + |
| 99 | +---- |
| 100 | + |
| 101 | +## Fresh 2.3: Zero JS by default, View Transitions, and Temporal support | Deno |
| 102 | +[deno.com/blog/fresh-2.3](https://deno.com/blog/fresh-2.3 "Fresh 2.3: Zero JS by default, View Transitions, and Temporal support | Deno") |
| 103 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">deno</span> <span class="jser-tag">vite</span> <span class="jser-tag">ReleaseNote</span></p> |
| 104 | + |
| 105 | +Fresh 프레임워크 v2.3 출시. |
| 106 | +정적 페이지에서 기본적으로 JavaScript 출력되지 않도록 변경, View Transitions API 지원, `app.ws()`에 의한 WebSocket 지원, Vite 통합 개선. |
| 107 | +CSP nonce 자동 생성, CIDR 형식에 의한 IP 필터링, Server to Client의 OpenTelemetry 트레이스 전파, Temporal API 지원. |
| 108 | +복수 정적 디렉토리 지원, 폼 전송할 때 로딩 게선, 리버스 프록시 대응(`trustProxy` 옵션) 추가. |
| 109 | + |
| 110 | + |
| 111 | +---- |
| 112 | + |
| 113 | +## Release pnpm 11 · pnpm/pnpm |
| 114 | +[github.com/pnpm/pnpm/releases/tag/v11.0.0](https://github.com/pnpm/pnpm/releases/tag/v11.0.0 "Release pnpm 11 · pnpm/pnpm") |
| 115 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">pnpm</span> <span class="jser-tag">ReleaseNote</span></p> |
| 116 | + |
| 117 | +pnpm v11.0.0 출시. |
| 118 | +Pure ESM 패키지로 이행, Node.js 18-21 지원 종료. |
| 119 | +`.npmrc`은 인증/레지스트리 설정만을 한정, 그 외 설정은 `pnpm-workspace.yaml`으로 이행. |
| 120 | +`minimumReleaseAge`를 기본적으로 1일로 변경, `allowBuilds` 설정을 통일, 스토어 인덱스에 SQLite를 사용하도록 변경. |
| 121 | +npm CLI에서 의존 배제해 `pnpm publish`/`pnpm login`/`pnpm audit`를 네이티브 구현으로 변경. |
| 122 | +`pnpm ci`/`pnpm sbom`/`pnpm clean`/`pnpm pack-app` 명령어 추가. |
| 123 | + |
| 124 | + |
| 125 | +---- |
| 126 | +<h1 class="site-genre">읽을거리</h1> |
| 127 | + |
| 128 | +---- |
| 129 | + |
| 130 | +## Manage agent skills with GitHub CLI - GitHub Changelog |
| 131 | +[github.blog/changelog/2026-04-16-manage-agent-skills-with-github-cli/](https://github.blog/changelog/2026-04-16-manage-agent-skills-with-github-cli/ "Manage agent skills with GitHub CLI - GitHub Changelog") |
| 132 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">GitHub</span> <span class="jser-tag">CLI</span> <span class="jser-tag">AI</span> <span class="jser-tag">Tools</span></p> |
| 133 | + |
| 134 | +GitHub CLI에 `gh skill` 명령어가 추가되어, Agent Skills 검색/설치/관리/공개 가능함. |
| 135 | +GitHub CLI v2.90.0 이후부터 이용 가능. |
| 136 | +태그나 commit SHA 버전 고정, git tree SHA에 의한 내용 변경 검지, provenance 정보 포함을 지원. |
| 137 | +immutable releases를 사용해 publish 이용함으로, 스킬을 같은 태그로 덮어쓰여지지 않도록 공개 가능 |
| 138 | + |
| 139 | + |
| 140 | +---- |
| 141 | +<h1 class="site-genre">웹사이트, 서비스, 문서</h1> |
| 142 | + |
| 143 | +---- |
| 144 | + |
| 145 | +## vercel-labs/wterm: A terminal emulator for the web |
| 146 | +[github.com/vercel-labs/wterm](https://github.com/vercel-labs/wterm "vercel-labs/wterm: A terminal emulator for the web") |
| 147 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">WebAssembly</span> <span class="jser-tag">library</span> <span class="jser-tag">terminal</span> <span class="jser-tag">browser</span></p> |
| 148 | + |
| 149 | +Web 브라우저 대상 터미널 에뮬레이터 라이브러리. |
| 150 | +코어가 Zig로 작성되어, WebAssembly(약 12KB)로 컴파일됨. |
| 151 | +DOM 요소와 렌더링함으로, 네이티브한 텍스트 선택/복사 & 붙여넣기/검색/접근성 지원. |
| 152 | + |
| 153 | + |
| 154 | +---- |
| 155 | + |
| 156 | +## Introducing Claude Design by Anthropic Labs \\ Anthropic |
| 157 | +[www.anthropic.com/news/claude-design-anthropic-labs](https://www.anthropic.com/news/claude-design-anthropic-labs "Introducing Claude Design by Anthropic Labs \\ Anthropic") |
| 158 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">AI</span> <span class="jser-tag">Design</span> <span class="jser-tag">Tools</span></p> |
| 159 | + |
| 160 | +Anthropic Labs가 공개한 디자인 도구. |
| 161 | +텍스트 프롬프트, 이미지, 문서(DOCX/PPTX/XLSX), 코드베이스, Web 캡챠부터 Web사이트 디자인이나 프로토타입, 슬라이드 자료를 작성 가능. |
| 162 | +팀 코드 기반이나 디자인 파일에서 디자인 시스템을 기반으로 작성 가능. |
| 163 | +Canva, PDF, PPTX, 스탠드얼론 HTML 형식의 Export를 Claude Code에 읽혀서 코드로 변경 가능. |
| 164 | + |
| 165 | + |
| 166 | +---- |
| 167 | + |
| 168 | +## Trees, from Pierre |
| 169 | +[trees.software/](https://trees.software/ "Trees, from Pierre") |
| 170 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">React</span> <span class="jser-tag">library</span> <span class="jser-tag">UI</span> <span class="jser-tag">accessibility</span></p> |
| 171 | + |
| 172 | +파일 트리를 렌더링하는 React 라이브러리. |
| 173 | +git status 게시, 드래그&드롭 파일 이동, 검색 필터, 컨텍스트 메뉴에 대응. |
| 174 | +Virtualiza에 의한 수천 파일 규모에도 렌더링 가능. |
| 175 | +키보드 네비게이션이나 WCAG 2.1에 준거한 접근성, CSS 변수에 의한 커스터마이즈 가능 |
| 176 | + |
| 177 | + |
| 178 | +---- |
| 179 | +<h1 class="site-genre">소프트웨어, 도구, 라이브러리</h1> |
| 180 | + |
| 181 | +---- |
| 182 | + |
| 183 | +## PerryTS/perry: A native TypeScript compiler written in Rust. Compiles TypeScript directly to executables using SWC and LLVM. |
| 184 | +[github.com/PerryTS/perry](https://github.com/PerryTS/perry "PerryTS/perry: A native TypeScript compiler written in Rust. Compiles TypeScript directly to executables using SWC and LLVM.") |
| 185 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">TypeScript</span> <span class="jser-tag">Rust</span> <span class="jser-tag">compiler</span> <span class="jser-tag">Tools</span></p> |
| 186 | + |
| 187 | +Rust로 작성된 TypeScript 네이티브 컴파일러. |
| 188 | +SWC으로 TypeScript 파싱하고, LLVM에서 실행 파일로 컴파일. |
| 189 | +macOS/Windows/Linux/iOS/Android 대상 크로스 컴파일에 대응, 네이티브 UI를 다루는 패키지가 준비되어 있음. |
| 190 | +저명한 npm 패키지는 Rust 구현인 것으로 넣었고, 다른 것은 V8 Runtime를 사용해 fallback에 대응. |
| 191 | + |
| 192 | + |
| 193 | +---- |
| 194 | + |
| 195 | +## endevco/aube: A fast Node.js package manager |
| 196 | +[github.com/endevco/aube](https://github.com/endevco/aube "endevco/aube: A fast Node.js package manager") |
| 197 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">nodejs</span> <span class="jser-tag">package</span> <span class="jser-tag">Rust</span> <span class="jser-tag">Tools</span></p> |
| 198 | + |
| 199 | +Rust으로 작성된 Node.js 대상 패키지 매니저. |
| 200 | +`pnpm-lock.yaml`/`package-lock.json`/`npm-shrinkwrap.json`/`yarn.lock`/`bun.lock` 의존 록파일 형식을 읽고 쓰는 것에 대응. |
| 201 | +글로벌한 content-addressable store에 의한 패키지 파일 공유, 최소 출시 기간이나 라이프사이클 스크립트 승인 제어 시큐리티 기능을 갖음. |
| 202 | + |
| 203 | + |
| 204 | +---- |
| 205 | + |
| 206 | +## TSRX | TypeScript Language Extension for Declarative UI |
| 207 | +[tsrx.dev/](https://tsrx.dev/ "TSRX | TypeScript Language Extension for Declarative UI") |
| 208 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">TypeScript</span> <span class="jser-tag">UI</span> <span class="jser-tag">compiler</span> <span class="jser-tag">React</span> <span class="jser-tag">Solid</span></p> |
| 209 | + |
| 210 | +선언적 UI를 위한 TSX 확장 언어. |
| 211 | +구조, 제어 흐름, 스타일을 같은 파일에 공유하면서, TypeScript 호환성을 갖는 설계. |
| 212 | +React/Ripple/Solid로 컴파일 가능. |
| 213 | +VS Code/Zed/Neovim/IntelliJ/Sublime의 IDE 지원, LSP/Prettier/ESLint 플러그인도 제공. |
| 214 | + |
| 215 | + |
| 216 | +---- |
| 217 | + |
| 218 | +## rstackjs/connect-next: An actively maintained fork of Connect. |
| 219 | +[github.com/rstackjs/connect-next](https://github.com/rstackjs/connect-next "rstackjs/connect-next: An actively maintained fork of Connect.") |
| 220 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">nodejs</span> <span class="jser-tag">library</span> <span class="jser-tag">TypeScript</span></p> |
| 221 | + |
| 222 | +Node.js의 HTTP middleware framework `connect` 관리하는 fork. |
| 223 | +TypeScript로 재작성되어, ES 모듈로 이름 붙인 export으로 제공됨. 의존 관계의 갱신이나 삭제가 이뤄짐 |
| 224 | + |
| 225 | + |
| 226 | +---- |
0 commit comments