JSer.info #734 - Koa v3.0.0가 출시되었습니다.
Node.js 18 지원 종료, Generator 사용한 Middleware 지원 종료 등 파괴적 변경도 포함됩니다. 새로운 기능으로, app.currentContext
으로 AsyncLocalStorage 사용해 현재 컨텍스트 얻는 방법 지원, Blob
/ReadableStream
/Response
지원, 커스텀 스트림 지원이 추가되었습니다.
Node.jsのv24가 출시되었습니다.
Node.js 24에는, V8 13.6으로 업데이트, npm 11 동봉, AsyncLocalStorage의 AsyncContextFrame이 기본값, URLPattern
글로벌 추가 변경이 포함됩니다. 또한, 퍼미션 모델이 --permission
플래그로 이용 가능합니다.
또한, Node.js 18는 2025년 4월 30일로 EOL(End Of Support)가 됩니다.
V8 엔진에 새로운 컴파일 힌트 구조가 구현됩니다.
//# allFunctionsCalledOnLoad
주석으로, JavaScript 파일의 eager compilation 지정 가능한 구조로 구현됩니다. 이로 인해, 파일 내 함수 컴파일링 타이밍을 제어할 수 있고, 기동 시 성능 최적화가 가능합니다.
한 편, 뭐든지 컴파일하면 시간과 메모리 소비하므로 이 문제에 대해서도 다룹니다.
To support JSer.info
- 😘 Recommend JSer.info to your friends!
- ❤️ Support @azu on GitHub Sponsors/JSer.info Sponsors
- 🐦 Follow @jser_info on X(Twitter)
헤드라인
react-router/CHANGELOG.md at main · remix-run/react-router
github.com/remix-run/react-router/blob/main/CHANGELOG.md#v752
React Router v7.5.2 출시.
X-React-Router-Prerender-Data
헤더와 X-React-Router-SPA-Mode
헤더 관련 취약성 보안 수정
- URL manipulation via Host / X-Forwarded-Host headers · Advisory · remix-run/react-router
- React Router and the Remix’ed path - zhero_web_security
Release v0.25.3 · evanw/esbuild
github.com/evanw/esbuild/releases/tag/v0.25.3
esbuild v0.25.3 출시.
--serve=
옵션으로 커스텀 호스트 지정을 가능하도록, CSS Nesting 제어 추가
Firefox 138.0, See All New Features, Updates and Fixes
www.mozilla.org/en-US/firefox/138.0/releasenotes/
Firefox 138 출시.
importmap
의 integrity
지원, Error.captureStackTrace()
지원, ES Proposal Stage 3의 Error.isError()
지원.
Import Attributes 사용한 JSON의 import 지원, Clear-Site-Data
에서 cache
directive 지원.
FedCM API의 Login Status API 지원, Web Audio API의 Message Port 지원.
플래그 조건으로 MutationEvent 삭제, HTML Sanitizer API 지원
Release 3.42.0 - 2025.04.30 · zloirock/core-js
github.com/zloirock/core-js/releases/tag/v3.42.0
core-js v3.42.0 출시.
Map upsert proposal 갱신, Iterator Helpers를 ES2025 사양에 포함하는 변경
Deno 2.3: Improved deno compile, local npm packages, and more
Deno v2.3 출시.
deno compile
로 FFI와 Node.js Native Addon 지원, 로컬 npm 패키지를 참조하도록, deno fmt
옵션 추가.
Windows의 deno
바이너리에 코드 서명하도록 변경
ESLint v9.26.0 released - ESLint - Pluggable JavaScript Linter
eslint.org/blog/2025/05/eslint-v9.26.0-released/
ESLint v9.26.0 출시.
eslint --mcp
에서 MCP서버로 기동하도록, no-unused-expressions
규칙에 ignoreDirectives
옵션 추가
Electron 36.0.0 | Electron
www.electronjs.org/blog/electron-36-0
Electron 36.0.0 출시.
Chromium 136, V8 13.6, Node 22.14.0으로 업그레이드.
macOS의 Writing Tools나 Autofill, Services 메뉴 지원하는 새로운 menu.popup
옵션 추가.
GTK 4가 GNOME로 기본 변경. NativeImage.getBitmap()
비권장으로, session.loadExtension
비권장되고 Extensions
객체로 이동.
Release v3.0.0 · koajs/koa
github.com/koajs/koa/releases/tag/v3.0.0
Koa v3.0.0 출시.
Node.js 18 미만 지원 종료, Generator 사용한 Middlewa 지원 종료, res.redirect('back')
삭제 ctx.back()
추가.
app.currentContext
에서 AsyncLocalStorage 사용한 현재 컨텍스트 얻기 지원.Blob
/ReadableStream
/Response
지원, 커스텀 스트림 지원
Node.js — Node.js Releases
nodejs.org/en/about/previous-releases
Node.js 18는 2025년 4월 30일로 EOL(End Of Support).
Release 21.0.0 · nrwl/nx
github.com/nrwl/nx/releases/tag/21.0.0
Nx 21.0.0 출시.
Node.js 20.19.0 이상 필요, outputStyle=compact
삭제, readWorkspaceConfig
폐지 등 파괴적 변경 포함.
continuous task 추가, 태스크용 Terminal UI 기능 추가, GitLab 출시 지원
Release v0.25.4 · evanw/esbuild
github.com/evanw/esbuild/releases/tag/v0.25.4
esbuild v0.25.4 출시.
개발 서버에 cors
옵션에서 Access-Control-Allow-Origin
헤더를 설정 가능.
Node.js — Node v24.0.0 (Current)
nodejs.org/en/blog/release/v24.0.0
Node.js v24.0.0 출시.
V8 13.6으로 업그레이드, npm 11 동봉, AsyncLocalStorage가 AsyncContextFrame를 기본적으로 사용하도록.
URLPattern
글로벌 추가, 퍼미션 모델이 --permission
플래그 이용하게끔, 테스트 러너 개선, Undici 7 동봉.
url.parse()
비권장으로 변경.
2025년 10월에 LTS될 예정.
읽을거리
프론트엔드 API 콜할 때 에러 핸들링을 가볍게 정리(Fetch API・typescript-fetch・TanStack Query) - 카미나시 엔지니어 블로그
kaminashi-developer.hatenablog.jp/entry/2025/04/30/080000
Fetch API/Open API의 typescript-fetch
, TanStack Query의 Fetch 예외 처리에 대하여
Giving V8 a Heads-Up: Faster JavaScript Startup with Explicit Compile Hints · V8
v8.dev/blog/explicit-compile-hints
//# allFunctionsCalledOnLoad
주석으로, JavaScript 파일을 eager compilation 하는 구조를 V8에 구현한 이야기.
JavaScript는 함수를 컴파일하려면 파일을 파싱할 필요가 있기에, 컴파일이 필요한지 판단하는데 시간이 걸림. 그래서, 파일 초반부에 주석으로 컴파일할 필요가 있다 판단 가능하도록 하게 하는 구조
소프트웨어, 도구, 라이브러리
Intent UI
React Aria Components 기반 shadcn스러운 복사 붙여넣기 가능한 컴포넌트 라이브러리
zumerlab/snapdom: snapDOM captures DOM nodes as images with exceptional speed and accuracy.
SVG의 <foreignObject>
를 사용해 DOM 요소를 렌더링 하는 라이브러리.
Shadow DOM, 의사 요소, 배경 렌더링, 폰트 포함이나 data 속성 제외에 대응
pulsar-edit/pulsar: A Community-led Hyper-Hackable Text Editor
Atom Editor를 Fork한 에디터.
Atom를 위해 만들어진 패키지도 동작하도록 함