|
| 1 | +--- |
| 2 | +title: "2026-03-22: Vite 8.0, Temporal Stage 4, Next.js 16.2" |
| 3 | +author: "azu" |
| 4 | +translatowr: rewrite0w0 |
| 5 | +layout: post |
| 6 | +date: 2026-03-22T13:12:53.259Z |
| 7 | +category: JSer |
| 8 | +tags: |
| 9 | +- Rust |
| 10 | +- vite |
| 11 | +- bundler |
| 12 | +- ECMAScript |
| 13 | +- Next.js |
| 14 | + |
| 15 | +--- |
| 16 | + |
| 17 | +JSer.info #767 - Vite 8.0가 출시되었다. |
| 18 | + |
| 19 | +- [Vite 8.0 is out! | Vite (main branch)](https://main.vite.dev/blog/announcing-vite8) |
| 20 | +- [Vitest 4.1 is out! | Vitest](https://vitest.dev/blog/vitest-4-1.html) |
| 21 | + |
| 22 | +esbuild + Rollup 이중 핸들러 구성이 Rust 기반으로 통합 핸들러 Rolldown으로 바뀌었다. lightningcss가 peerDependency에서 직접 의조 관계로 변경, 빌트인 Devtools, TypeScript의 경로 얼라이어스 해결 (`resolve.tsconfigPaths`) 지원이 추가되었다. WebAssembly의 SSR 지원, 브라우저 콘솔 로그를 dev 서버 터미널에 전송하는 `server.forwardConsole` 추가도 포함된다. 같은 타이밍에 Vitest 4.1도 출시, Vite 8 지원, Test Tags 기능 추가, `aroundEach`/`aroundAll` 훅 추가도 있다. |
| 23 | + |
| 24 | +--- |
| 25 | + |
| 26 | +TC39 2026년 3월 미팅 결과로, Temporal이 Stage 4가 되어 ES2026에 포함되도록 결정되었다. |
| 27 | + |
| 28 | +- [ECMAScript proposal updates @ 2026-03 | ECMAScript Daily](https://ecmascript-daily.github.io/ecmascript/2026/03/16/ecmascript-proposal-update) |
| 29 | + |
| 30 | +Import Text가 Stage 3으로, Error Stack Accessor가 Stage 2.7으로, Curtailing the Power of Thenables가 Stage 2가 되었다. |
| 31 | + |
| 32 | +--- |
| 33 | + |
| 34 | +Next.js 16.2가 출시되었다. |
| 35 | + |
| 36 | +- [Next.js 16.2 | Next.js](https://nextjs.org/blog/next-16-2) |
| 37 | +- [Next.js 16.2: AI Improvements | Next.js](https://nextjs.org/blog/next-16-2-ai) |
| 38 | + |
| 39 | +`next dev` 속도 개선, Server Components 페이로드 디시리얼라이즈 개선에 의한 렌더링 고속화가 있다.`next/link`에 `transitionTypes` 추가, 브라우저 콘솔을 터미널로 전송한 기능이 기본적으로 유효화, Hydration 에러 디버그 게시 개선, Adapters API가 Stable으로 변경됨. 또한, `create-next-app`가 기본적으로 `AGENTS.md`을 생성됨. |
| 40 | + |
| 41 | +---- |
| 42 | + |
| 43 | +{% include inline-support.html %} |
| 44 | + |
| 45 | +---- |
| 46 | + |
| 47 | +<h1 class="site-genre">헤드라인</h1> |
| 48 | + |
| 49 | +---- |
| 50 | + |
| 51 | +## Vite 8.0 is out! | Vite (main branch) |
| 52 | +[main.vite.dev/blog/announcing-vite8](https://main.vite.dev/blog/announcing-vite8 "Vite 8.0 is out! | Vite (main branch)") |
| 53 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">Vite</span> <span class="jser-tag">Rust</span> <span class="jser-tag">ReleaseNote</span> <span class="jser-tag">bundler</span></p> |
| 54 | + |
| 55 | +Vite 8.0 출시. |
| 56 | +esbuild + Rollup 이중핸들러 구성을 Rust 기반으로 통합한 핸들러 Rolldown로 변경. |
| 57 | +lightningcss가 peerDependency에서 직접 의존 관계 변경. |
| 58 | +빌트인 Devtools, TypeScript 경로 얼라이어스 해결 (`resolve.tsconfigPaths`) 지원. |
| 59 | +WebAssembly의 SSR 지원, 브라우저 콘솔 로그를 dev 서버 터미널로 전송하는 `server.forwardConsole` 추가. |
| 60 | + |
| 61 | + |
| 62 | +---- |
| 63 | + |
| 64 | +## Vitest 4.1 is out! | Vitest |
| 65 | +[vitest.dev/blog/vitest-4-1.html](https://vitest.dev/blog/vitest-4-1.html "Vitest 4.1 is out! | Vitest") |
| 66 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">vite</span> <span class="jser-tag">ReleaseNote</span> <span class="jser-tag">test</span></p> |
| 67 | + |
| 68 | +Vitest 4.1 출시. |
| 69 | +Vite 8 지원, 테스트케이스에 태그를 붙어 필터링할 수 있는 Test Tags 기능 추가. |
| 70 | +`test.extend`에서 자료형 추론 개선, `aroundEach`/`aroundAll` 훅 추가. |
| 71 | +`vi.defineHelper()`으로 스택트레이스에서 헬퍼 함수 내부를 제외할 수 있음. |
| 72 | +`--detect-async-leaks` 플래그에 비동기 리소스 leek 검출 지원. |
| 73 | +`mockThrow()`/`mockThrowOnce()` 추가, Chai 형식 mock assertion 지원. |
| 74 | +GitHub Actions 레포터가 job summary를 자동 생성 가능, AI 에이전트 대상 Agent 레포터 추가 |
| 75 | + |
| 76 | + |
| 77 | +---- |
| 78 | + |
| 79 | +## Announcing Vite+ Alpha | VoidZero |
| 80 | +[voidzero.dev/posts/announcing-vite-plus-alpha](https://voidzero.dev/posts/announcing-vite-plus-alpha "Announcing Vite+ Alpha | VoidZero") |
| 81 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">vite</span> <span class="jser-tag">Rust</span> <span class="jser-tag">CLI</span> <span class="jser-tag">Tools</span> <span class="jser-tag">ReleaseNote</span></p> |
| 82 | + |
| 83 | +Vite+ Alpha 출시. |
| 84 | +Vite, Vitest, Rolldown, Oxlint, Oxfmt 등을 통합한 CLI 도구. |
| 85 | +`vp dev`/`vp build`/`vp test`/`vp check` 명령어로, 개발 서버, 빌드, 테스트, Lint, 포맷을 하나의 도구로 실행 가능. |
| 86 | +`vp env`에서의 Node.js 버전 관리, `vp run`에서의 monorepo 태스크 실행과 캐시 기능 제공. |
| 87 | +당초는 상용으로 검토되었지만, MIT 라이센스로 오픈소스 공개됨. |
| 88 | + |
| 89 | +- [voidzero-dev/vite-plus: Vite+ is the unified toolchain and entry point for web development. It manages your runtime, package manager, and frontend toolchain in one place.](https://github.com/voidzero-dev/vite-plus/tree/main "voidzero-dev/vite-plus: Vite+ is the unified toolchain and entry point for web development. It manages your runtime, package manager, and frontend toolchain in one place.") |
| 90 | + |
| 91 | +---- |
| 92 | + |
| 93 | +## Nuxt 4.4 · Nuxt Blog |
| 94 | +[nuxt.com/blog/v4-4](https://nuxt.com/blog/v4-4 "Nuxt 4.4 · Nuxt Blog") |
| 95 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">Vue</span> <span class="jser-tag">library</span> <span class="jser-tag">ReleaseNote</span></p> |
| 96 | + |
| 97 | +Nuxt v4.4 출시. |
| 98 | +Vue Router v5으로 업그레이드, `createUseFetch`/`createUseAsyncData` 추가. |
| 99 | +레이아웃에 자료형 붙인 Props를 넘길수 있음, `useAnnouncer` composable과 `<NuxtAnnouncer>` 컴포너트에 의한 접근성 개선. |
| 100 | +라우트 생성에 trie 데이터 구조 기반 `unrouting` 라이브러리 채용해서 퍼포먼스 개선. |
| 101 | +`useCookie`의 `refresh` 옵션 추가, `nuxt build --profile`에서의 빌드 프로파일링 지원. |
| 102 | + |
| 103 | + |
| 104 | +---- |
| 105 | + |
| 106 | +## ECMAScript proposal updates @ 2026-03 | ECMAScript Daily |
| 107 | +[ecmascript-daily.github.io/ecmascript/2026/03/16/ecmascript-proposal-update](https://ecmascript-daily.github.io/ecmascript/2026/03/16/ecmascript-proposal-update "ECMAScript proposal updates @ 2026-03 | ECMAScript Daily") |
| 108 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">ECMAScript</span> <span class="jser-tag">proposal</span> <span class="jser-tag">news</span> <span class="jser-tag">TC39</span></p> |
| 109 | + |
| 110 | +TC39 113th meeting에서 ECMAScript Proposal 스테이지 변경 모음. |
| 111 | +Temporal가 Stage 4가 되어 ES2026에 포함됨. |
| 112 | +Import Text가 Stage 3, Error Stack Accessor가 Stage 2.7. |
| 113 | +Curtailing the Power of Thenables가 Stage 2. |
| 114 | + |
| 115 | + |
| 116 | +---- |
| 117 | + |
| 118 | +## Nova 1.0 · Nova |
| 119 | +[trynova.dev/blog/nova-1.0](https://trynova.dev/blog/nova-1.0 "Nova 1.0 · Nova") |
| 120 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">Rust</span> <span class="jser-tag">JavaScript</span> <span class="jser-tag">ReleaseNote</span></p> |
| 121 | + |
| 122 | +Nova 1.0 출시. |
| 123 | +Rust로 작성된 경량 임베디드 대상 데이터 지향 아키텍처 JavaScript 엔진. |
| 124 | +ECMAScript 사양 완전한 지원은 아직 과제가 있음, RegExp의 Unicode 지원이나 Promise 서브클라스화에는 제한이 있다. |
| 125 | +시멘틱 버저닝을 채용해서 업데이트를 할 예정. |
| 126 | + |
| 127 | + |
| 128 | +---- |
| 129 | + |
| 130 | +## Electron 41.0 | Electron |
| 131 | +[www.electronjs.org/blog/electron-41-0](https://www.electronjs.org/blog/electron-41-0 "Electron 41.0 | Electron") |
| 132 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">Electron</span> <span class="jser-tag">ReleaseNote</span></p> |
| 133 | + |
| 134 | +Electron 41.0 출시. |
| 135 | +Chromium 146, Node.js v24.14.0, V8 14.6으로 업그레이드. |
| 136 | +PDF 렌더링이 out-of-process iframe 사용해 동일 WebContents 내에 렌더링으로 변경. |
| 137 | +Cookie의 `changed` 이벤트에 `inserted` 변경 이유 추가. |
| 138 | +ASAR 정합성 체크에서 다이제스트 지원, Wayland에서 프레임레스의 드롭 쉐도우와 리사이즈 경계 개선. |
| 139 | +MSIX auto updater 호환성을 추가, macOS 대상 `--disable-geolocation` 플래그 추가. |
| 140 | +WebSocket 인증을 `login` 이벤트로 처리 가능, `webPreferences.focusOnNavigation` 옵션 추가. |
| 141 | + |
| 142 | + |
| 143 | +---- |
| 144 | + |
| 145 | +## Bun v1.3.11 | Bun Blog |
| 146 | +[bun.com/blog/bun-v1.3.11](https://bun.com/blog/bun-v1.3.11 "Bun v1.3.11 | Bun Blog") |
| 147 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">Bun</span> <span class="jser-tag">ReleaseNote</span></p> |
| 148 | + |
| 149 | +Bun v1.3.11 출시. |
| 150 | +OS의 스케쥴러를 사용해 cron 잡 등록하는 `Bun.cron` API 추가, ANSI 에스케이프 코드를 고려한 문자열 슬라이스 `Bun.sliceAnsi` 추가. |
| 151 | +`bun test`에 `--path-ignore-patterns` 플래그 추가 |
| 152 | + |
| 153 | + |
| 154 | +---- |
| 155 | + |
| 156 | +## Release pnpm 11 Beta 0 · pnpm/pnpm |
| 157 | +[github.com/pnpm/pnpm/releases/tag/v11.0.0-beta.0](https://github.com/pnpm/pnpm/releases/tag/v11.0.0-beta.0 "Release pnpm 11 Beta 0 · pnpm/pnpm") |
| 158 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">pnpm</span> <span class="jser-tag">ReleaseNote</span></p> |
| 159 | + |
| 160 | +pnpm v11.0.0-beta.0 출시. |
| 161 | +Pure ESM로 패키지 마이그레이션, Node.js 18-21 지원 종료. |
| 162 | +`package.json`의 `pnpm` 필드 설정을 `pnpm-workspace.yaml`으로 마이그레이션, `pnpm server` 명령어 삭제, `pnpm link` 명령어 변경 등 많은 파괴적 변경이 있음. |
| 163 | +패키지 메타데이터 저장에 SQLite 사용하도록 변경, 스토어 버전 업데이트. |
| 164 | +`pnpm clean` 명령어로 `node_modules` 삭제, `pnpm audit --fix=update`로 lockfile 업데이트에 의한 취약정 수정 대응. |
| 165 | +`config.yaml` 지원, Pnpmfile로 ESM 포맷(`.pnpmfile.mjs`) 지원. |
| 166 | + |
| 167 | + |
| 168 | +---- |
| 169 | + |
| 170 | +## Next.js 16.2 | Next.js |
| 171 | +[nextjs.org/blog/next-16-2](https://nextjs.org/blog/next-16-2 "Next.js 16.2 | Next.js") |
| 172 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">Next.js</span> <span class="jser-tag">React</span> <span class="jser-tag">ReleaseNote</span></p> |
| 173 | + |
| 174 | +Next.js 16.2 출시. |
| 175 | +`next dev` 속도 개선, Server Components 페이로드 디시리얼라이즈 개선에 의한 렌더링 고속화. |
| 176 | +`next/link`으로 `transitionTypes` 추가, Server Function 실행 로그를 터미널 게시하는 기능 추가, 브라우저 로그를 터미널에 게시하는 기능을 기본적 유효. |
| 177 | +Hydration 에러 디버그 게시 개선, `next start`에서 `--inspect` 플래그 지원. |
| 178 | +Adapters API가 Stable로 변경. |
| 179 | +`create-next-app` 기본적으로 `AGENTS.md` 생성하도록 변경, `node_modules/next/dist/docs/`에 문서를 번들링하도록 변경 |
| 180 | + |
| 181 | +- [Next.js 16.2: AI Improvements | Next.js](https://nextjs.org/blog/next-16-2-ai "Next.js 16.2: AI Improvements | Next.js") |
| 182 | +- [Turbopack: What's New in Next.js 16.2 | Next.js](https://nextjs.org/blog/next-16-2-turbopack "Turbopack: What&#039;s New in Next.js 16.2 | Next.js") |
| 183 | + |
| 184 | +---- |
| 185 | +<h1 class="site-genre">읽을거리</h1> |
| 186 | + |
| 187 | +---- |
| 188 | + |
| 189 | +## TC39 Advances Temporal to Stage 4 Alongside Several ECMAScri... |
| 190 | +[socket.dev/blog/tc39-advances-temporal-to-stage-4?utm\_medium=feed](https://socket.dev/blog/tc39-advances-temporal-to-stage-4?utm_medium=feed "TC39 Advances Temporal to Stage 4 Alongside Several ECMAScri...") |
| 191 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">TC39</span> <span class="jser-tag">ECMAScript</span> <span class="jser-tag">proposal</span> <span class="jser-tag">article</span></p> |
| 192 | + |
| 193 | +TC39 2026년 3월 미팅 결과. |
| 194 | +Temporal가 Stage 4가 되어 ES2026에 포함됨. |
| 195 | + |
| 196 | + |
| 197 | +---- |
| 198 | + |
| 199 | +## External import maps, today! • Lea Verou |
| 200 | +[lea.verou.me/blog/2026/external-import-maps-today/](https://lea.verou.me/blog/2026/external-import-maps-today/ "External import maps, today! • Lea Verou") |
| 201 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">JavaScript</span> <span class="jser-tag">module</span> <span class="jser-tag">article</span></p> |
| 202 | + |
| 203 | +External Import Maps를 빌드도구 없이 이용하는 방법에 대하여. |
| 204 | +`<script type="importmap">`를 DOM에서 동적으로 주입해서, 외부 파일 Import Map를 관리. `document.currentScript.after()` 사용해`<script type="importmap">` 요소를 주입. |
| 205 | +Chrome 89+/Safari 16.4+/Firefox 108+으로 동작. |
| 206 | + |
| 207 | +- [JSPM - JSPM 4.0 Release](https://jspm.org/jspm-4.0-release "JSPM - JSPM 4.0 Release") |
| 208 | + |
| 209 | +---- |
| 210 | + |
| 211 | +## Edge.js: Running Node apps inside a WebAssembly Sandbox · Blog · Wasmer |
| 212 | +[wasmer.io/posts/edgejs-safe-nodejs-using-wasm-sandbox](https://wasmer.io/posts/edgejs-safe-nodejs-using-wasm-sandbox "Edge.js: Running Node apps inside a WebAssembly Sandbox · Blog · Wasmer") |
| 213 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">WebAssembly</span> <span class="jser-tag">nodejs</span> <span class="jser-tag">article</span></p> |
| 214 | + |
| 215 | +WebAssembly의 Sandbox에서 Node.js 호환 어플리케이션 실행 가능한 Runtime. |
| 216 | +Node.js v24 호환으로, Next.js나 Astro 프레임워크 동작시킬 수 있음. |
| 217 | +OS 시스템 콜과 네이티브 코드만을 WASIX 경유로 샌드박스화하고, JavaScript 엔진 자체는 네이티브 실행하는 아키텍처임. |
| 218 | +V8, JavaScriptCore, QuickJS 복수의 JS 엔진에 대응. |
| 219 | + |
| 220 | + |
| 221 | +---- |
| 222 | +<h1 class="site-genre">웹사이트, 서비스, 문서</h1> |
| 223 | + |
| 224 | +---- |
| 225 | + |
| 226 | +## unjs/impound: Builder-agnostic plugin to allow restricting import patterns in certain parts of your code-base. |
| 227 | +[github.com/unjs/impound?tab=readme-ov-file](https://github.com/unjs/impound?tab=readme-ov-file "unjs/impound: Builder-agnostic plugin to allow restricting import patterns in certain parts of your code-base.") |
| 228 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">JavaScript</span> <span class="jser-tag">TypeScript</span> <span class="jser-tag">Tools</span> <span class="jser-tag">module</span> <span class="jser-tag">bundler</span> <span class="jser-tag">plugin</span></p> |
| 229 | + |
| 230 | +특정 디렉토리에서 import를 금지하는 패턴을 정의하는 unplugin 플러그인. |
| 231 | +정규표현, 문자열, 함수에 의한 패턴 매칭에서 import 제한 규칙 정의함. |
| 232 | +`trace` 옵션을 유효하면, 규칙에서 금지된 결과를 볼 수 있음 |
| 233 | + |
| 234 | + |
| 235 | +---- |
| 236 | + |
| 237 | +## BrowserPod — Sandboxed Dev Environments in any Browser |
| 238 | +[browserpod.io/](https://browserpod.io/ "BrowserPod — Sandboxed Dev Environments in any Browser") |
| 239 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">WebAssembly</span> <span class="jser-tag">nodejs</span> <span class="jser-tag">browser</span> <span class="jser-tag">webservice</span></p> |
| 240 | + |
| 241 | +브라우저 내에서 Node.js 코드를 샌드박스 실행 가능한 플랫폼. |
| 242 | +WebAssembly 기반 런타임 엣지 사용, WebWorker로 멀티프로세스 실행, 가상 파일 시스템, 제어된 네트워크 접근 기능 갖고 있음. |
| 243 | + |
| 244 | + |
| 245 | +---- |
| 246 | +<h1 class="site-genre">소프트웨어, 도구, 라이브러리</h1> |
| 247 | + |
| 248 | +---- |
| 249 | + |
| 250 | +## sam247/openredaction: Open Source PII detection and redaction for JavaScript/Typescript. Achieve enterprise compliance and unparalleled, lightning fast performance, all 100% local. |
| 251 | +[github.com/sam247/openredaction](https://github.com/sam247/openredaction "sam247/openredaction: Open Source PII detection and redaction for JavaScript/Typescript. Achieve enterprise compliance and unparalleled, lightning fast performance, all 100% local.") |
| 252 | +<p class="jser-tags jser-tag-icon"><span class="jser-tag">JavaScript</span> <span class="jser-tag">TypeScript</span> <span class="jser-tag">library</span> <span class="jser-tag">privacy</span> <span class="jser-tag">RegExp</span></p> |
| 253 | + |
| 254 | +JavaScript/TypeScript 대상 PII(개인식별정보) 검출과 마스킹하는 라이브러리. |
| 255 | +정규표현을 사용해, 메일 주소, 전화번호, 카드 번호, 정부 발행 ID50여개국 이상 PII 패턴 지원. |
| 256 | + |
| 257 | + |
| 258 | +---- |
0 commit comments