JSer.info #771 - Node.js 26.0.0가 출시되었다.
Temporal API가 기본적으로 유효화, V8 14.6으로 업데이트로 인해 Map/WeakMap의 getOrInsert()/getOrInsertComputed()나 Iterator의 concat() 메서드가 추가된다.--experimental-transform-types 플래그 삭제 및 module.register()의 runtime-deprecate 같은 파괴적 변경도 있다.
Node.js 26는, 현재 LTS 출시 스케쥴에 따른 마지막 메이저 출시이다. Node.js 27부터는 연 1회 출시로 변경되고, 모든 출시가 LTS가 되는 새로운 스케쥴로 변경된다.
또한, Node.js 20.x가 EOL가 되어 보안 패치를 포함한 업데이트가 제공되지 않는다.
Rolldown 1.0가 출시되었다.
Rolldown은 Rust로 작성된 JavaScript/TypeScript 번들러다.
Rollup 호환 플러그인 API를 갖고, Rollup와 비교해 빠르게 빌드하는 것이 목표.
Vite 8에는 기본적 번들러로 채용되었다.
Jest v30.4.0가 출시되었다.
Node v24.9+에서 ES Modules 대해 require() 지원, Node v26의 Temporal API 대응하는 fake timers가 추가되었다. 또한, jest.config.mts 지원, 프로젝트 단위 verbose/silent 설정 추가, React 19의 pretty-format 지원 포함된다.
To support JSer.info
- 😘 Recommend JSer.info to your friends!
- ❤️ Support @azu on GitHub Sponsors/JSer.info Sponsors
- 🐦 Follow @jser_info on X(Twitter)
헤드라인
Release v8.0.0 · avajs/ava
github.com/avajs/ava/releases/tag/v8.0.0
AVA v8.0.0 출시.
Node.js v22.20/v24.12 이후가 필수 조건, 내부 구현을 ESM화.
CommonJS로 이용하는 경우는 const {default: test} = require('ava')으로 변경이 필요.
기본적으로 테스트 파일 확장자가 js/mjs으로 변경되어, 테스트 파일은 import()로 읽도록 변경.
실행 조건에서 테스트를 스킵/실행하는 test.skipIf()/test.runIf() 추가.
*.tsbuildinfo 파일 변경을 Watch 모드에서 무시, TAP 레포트 에러명 복원 처리 개선.
Node.js — Node.js 26.0.0 (Current)
nodejs.org/en/blog/release/v26.0.0
Node.js 26.0.0(Current) 출시.
Temporal API가 기본 유효화.
V8 14.6 업데이트로 인해, Weak/Map의 getOrInsert()/getOrInsertComputed()나 Iterator의 concat() 메서드가 추가.
Undici 8.0.2으로 업데이트.
http.Server.prototype.writeHeader() 삭제, 레거시 스트림 모듈(_stream_wrap) 삭제.
--experimental-transform-types 플래그 삭제, module.register()를 runtime-deprecate
Release 0.18 | StyleX
StyleX v0.18 출시.
컴파일할 때 값을 설정할 수 있는 stylex.env API 추가, 프로젝트 모형을 작성하는 create-stylex-app CLI 추가.
stylex.attrs API 부활, Chrome DevTools 확장 제공.
JSX에서 sx={} 구문 지원, defineVars 자기 참조 변수 지원, stylex.when 속성 셀렉터도 지원, CSS Layers 제어 개선, ESLint 플러그인 수정.
Node.js — End-Of-Life
Node.js 20.x가 EOL가 되어 보안 패치를 포함한 모든 업데이트 제공하지 않음.
Chrome 148 | Release notes | Chrome for Developers
developer.chrome.com/release-notes/148
Chrome 148 출시.
CSS의 container-name 단독 컨테이너 쿼리, @supports의 at-rule() 지원, revert-rule 키워드 추가.
text-decoration-skip-ink: all, <video>/<audio> 요소의 loading="lazy" 속성 지원.
Prompt API, Web Authentication의 Immediate UI 모드 지원.
Android 대상 SharedWorker 다시 유효화, Web Serial API 지원, Resource Timing에 contentType 추가.
Origin Trial로 Declarative CSS module scripts, HTML-in-canvas, Connection Allowlists, OpaqueRange 추가
Node.js — Node.js 26.1.0 (Current)
nodejs.org/en/blog/release/v26.1.0
Node.js 26.1.0 출시.
실험적인 node:ffi 모듈 추가, --experimental-ffi 플래그로 동적 라이브러리 읽기와 네이티브 심볼 호출에 대응.
crypto.randomUUIDv7() 추가, crypto.diffieHellman()가 키 데이터를 받도록 변경.
fs.stat()로 signal 옵션 추가, statfs가 frsize 필드 공개.
HTTP의 IncomingMessage에 req.signal 추가, Buffer의 indexOf()/lastIndexOf()에 end 파라메터 추가.
테스트 러너에 테스트 순서 랜덤화 및 AbortSignal.timeout 목 타이머 대응 추가, util.styleText()가 16진수 컬러 지원
Release v30.4.0 · jestjs/jest
github.com/jestjs/jest/releases/tag/v30.4.0
Jest v30.4.0 출시.
Node v24.9+에서 ES Modules 대해 require() 지원, Node v26의 Temporal API에 대응 fake timers 추가.
jest.config.mts 지원, --collect-tests 플래그 추가, workerGracefulExitTimeout 옵션 추가.
프로젝트 단위 verbose/silent 설정 추가, React 19의 pretty-format 지원.
projects 설정에서 커버리지 레포트 수정, structuredClone에서 toStrictEqual 수정, ESM와 WebAssembly의 import 할 때 데드록 수정.
Electron 42 | Electron
www.electronjs.org/blog/electron-42-0
Electron 42 출시.
Chromium 148/Node.js 24.15.0/V8 14.8 업데이트.
macOS 통지 API가 UNNotification API로 변경되어 코드 서명이 필수, postinstall로 Electron 바이너리를 다운로드하는 동작 삭제. Session.clearStorageData()으로 quotas 오브젝트를 삭제.
view.setBounds() 애니메이션 대응, view.setBackgroundBlur()에 네이티브 배경 blur 지원.
macOS에서 Notification.getHistory(), globalShortcut.setSuspended(), 힙 프로파일링 지원.
Release v1.16.0 · axios/axios
github.com/axios/axios/releases/tag/v1.16.0
axios v1.16.0 출시.
fetch adapter에서의 maxBodyLength/maxContentLength 제한 강제, proxy 리퀘스트할 때 유저 설정 Host 헤더 보존 같은 파괴적 변경 포함.
또한, Basic 인증으로 percent-encoded된 인증 정보 디코드, parseProtocol가 콜론으로 자르고 엄밀성을 요구하도록 변경.
QUERY HTTP 메서드 지원, AxiosError.ECONNREFUSED 추가, encode 헬퍼 export.
Announcing Rolldown 1.0 | VoidZero
voidzero.dev/posts/announcing-rolldown-1-0
Rolldown 1.0 출시.
Rust으로 작성된 Rollup 호환성 플러그인과 호환성 갖은 JavaScript/TypeScript 번들러.
Vite 8에서 기본 번들러 이용.
Chrome 149 beta | Blog | Chrome for Developers
developer.chrome.com/blog/chrome-149-beta?hl=en
Chrome 149 beta 출시.
CSS의 shape-outside 프로퍼티에서 path()/shape()/rect()/xywh() 함수 지원.
SVG의 pathLength 속성 CSS 프로퍼티화, image-rendering: crisp-edges 지원.
Intl.Locale.prototype.variants 추가, 프로그램에 의한 스크롤 메서드가 Promise을 반환하도록 변경.
Service Worker의 Request에 isReloadNavigation 속성 추가, WebSocket 연결중에도 bfcache 이용 가능하도록.
Origin Trial으로 Permissions Policy의 focus-without-user-activation, rawgamepadinputchange 이벤트 추가.
소프트웨어, 도구, 라이브러리
sqlfu
SQL 파일을 중심으로 한 TypeScript용 SQLite 데이터베이스 개발 툴킷.
definitions.sql에서 스키마 정의 sqlfu draft으로 마이그레이션 생성, SQL 쿼리에서 자료형 안전한 TypeScript 랩퍼 생성.
Cloudflare Durable Object/D1/Node.js/Bun/better-sqlite3/libsql 대응.
ESLint 플러그인, SQL 포맷터, Admin UI, OpenTelemetry의 트레이싱에 대응.
fabon-f/temporal-polyfill-lite: Lightweight Temporal polyfill
github.com/fabon-f/temporal-polyfill-lite
Temporal API polyfill 라이브러리.
최신 Temporal 사양 대응, ponyfill로 global를 갈아 끼우는 shim으로 이용 가능.
TypeScript으로 작성되었고, 내부적으로 BigInt에 의존하지 않는 구현.
open-circle/formisch: The lightweight, schema-first, and fully type-safe form library for React, Solid, Vue, Svelte and more.
github.com/open-circle/formisch
React/Solid/Vue/Svelte/Preact/Qwik에 대응한 스키마 퍼스트 폼 라이브러리.
Valibot를 이용한 스키마 기반 검증 지원, createForm이나 <Form />/<Field />의 API로 폼 상태 관리.
