Fork me on GitHub

2025-05-07: koa v3.0.0, Node.js 24とNode.js 18 EOL, `//# allFunctionsCalledOnLoad`

Translator: rewrite0w0 Edit on GitHub See Revisions

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


헤드라인


react-router/CHANGELOG.md at main · remix-run/react-router

github.com/remix-run/react-router/blob/main/CHANGELOG.md#v752

React library ReleaseNote

React Router v7.5.2 출시.
X-React-Router-Prerender-Data헤더와 X-React-Router-SPA-Mode 헤더 관련 취약성 보안 수정


Release v0.25.3 · evanw/esbuild

github.com/evanw/esbuild/releases/tag/v0.25.3

esbuild ReleaseNote

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 ReleaseNote

Firefox 138 출시.
importmapintegrity 지원, 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

JavaScript polyfill ReleaseNote

core-js v3.42.0 출시.
Map upsert proposal 갱신, Iterator Helpers를 ES2025 사양에 포함하는 변경


Deno 2.3: Improved deno compile, local npm packages, and more

deno.com/blog/v2.3

deno ReleaseNote

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 ReleaseNote

ESLint v9.26.0 출시.
eslint --mcp에서 MCP서버로 기동하도록, no-unused-expressions 규칙에 ignoreDirectives 옵션 추가


Electron 36.0.0 | Electron

www.electronjs.org/blog/electron-36-0

Electron ReleaseNote

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

nodejs ReleaseNote

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

nodejs news

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

JavaScript Tools ReleaseNote

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 ReleaseNote

esbuild v0.25.4 출시.
개발 서버에 cors 옵션에서 Access-Control-Allow-Origin 헤더를 설정 가능.


Node.js — Node v24.0.0 (Current)

nodejs.org/en/blog/release/v24.0.0

nodejs ReleaseNote

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 TypeScript JavaScript article HTTP

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

JavaScript V8 article

//# allFunctionsCalledOnLoad 주석으로, JavaScript 파일을 eager compilation 하는 구조를 V8에 구현한 이야기.
JavaScript는 함수를 컴파일하려면 파일을 파싱할 필요가 있기에, 컴파일이 필요한지 판단하는데 시간이 걸림. 그래서, 파일 초반부에 주석으로 컴파일할 필요가 있다 판단 가능하도록 하게 하는 구조


소프트웨어, 도구, 라이브러리


Intent UI

intentui.com/

React UI library

React Aria Components 기반 shadcn스러운 복사 붙여넣기 가능한 컴포넌트 라이브러리


zumerlab/snapdom: snapDOM captures DOM nodes as images with exceptional speed and accuracy.

github.com/zumerlab/snapdom

JavaScript SVG Image library

SVG의 <foreignObject>를 사용해 DOM 요소를 렌더링 하는 라이브러리.
Shadow DOM, 의사 요소, 배경 렌더링, 폰트 포함이나 data 속성 제외에 대응


pulsar-edit/pulsar: A Community-led Hyper-Hackable Text Editor

github.com/pulsar-edit/pulsar

atom editor JavaScript

Atom Editor를 Fork한 에디터.
Atom를 위해 만들어진 패키지도 동작하도록 함


Pull Request to this article
JSer.info Slackに参加する