JSer.info #664 - Rollup 4.0.0 출시되었습니다.
Node.js 14/16 지원 종료, Acorn 대신 SWC를 파서로 사용하도록 변경되었습니다.
SWC 이용에 따른 옵션 삭제나 비권장으로 변경이 있습니다.
Vite 현재와 미래에 관하여 ViteConf에서 발표되었습니다.
Vite는 Dev 빌드에 esbuild, Prodビ 빌드에 Rollup 사용하므로 빌드 결과에 차이가 있던 문제가 있었습니다.
이에, Rollup 호환을 염두한 Rolldown Bundler를 Rust로 개발한다는 이야기.
비슷한 이야기로 webpack 호환 Rspack도 있습니다.
Vite는 Rspack 팀과 협력이 예정되어있으며, Rolldown은 Rollup 호환 목적으로 개발해 나갈 것입니다.
esbuild/webpack/Rollup/Parcel 등 현재 bundler 아키텍처나 확장성 관련해서는 Rspack 개발 팀이 상세히 정리했습니다.
pnpm v8.9.0가 출시되었습니다.
pnpm v8.9.0은, 캐시(Store)에서 패키지를 복사할 때에 clonefile/reflinks를 사용함으로 설치 속도를 개선합니다.
macOS의 APFS이나 Windows의 Dev Drive 파일 시스템은, Copy on Write 구조 지원합니다.
pnpm v8.9.0은, 이 파일 시스템을 이용하는 경우에 설치 속도가 개선됩니다.
To support JSer.info
- 😘 Recommend JSer.info to your friends!
- ❤️ Support @azu on GitHub Sponsors/JSer.info Sponsors
- 🐦 Follow @jser_info on X(Twitter)
헤드라인
Announcing TypeScript 5.3 Beta - TypeScript
devblogs.microsoft.com/typescript/announcing-typescript-5-3-beta/
TypeScript 5.3 beta 출시.
Stage 3 Import Attributes 지원, resolution-mode
를 ///
주석으로 지정 가능.
switch(true)
에서 Narrowing 지원, [Symbol.hasInstance]
와 insteanceof
를 사용한 Narrowing 지원.
패키지 내 bundle 파일 중복 피함으로, 패키지 크기 개선.
Release v4.0.0 · rollup/rollup
github.com/rollup/rollup/releases/tag/v4.0.0
Rollup v4.0.0 출시.
Node.js 14/16 지원 종료, 파서로 Acorn 대신 SWC.
비권장 옵션 삭제
Chrome 119 beta - Chrome for Developers
developer.chrome.com/en/blog/chrome-119-beta/
Chroem 119 beta 출시.
WebSQL 삭제, SVGUseElement
에서 Data URL 지원 삭제, 비표준 shadowroot
속성 삭제.
CSS에서는, :user-valid
/:user-invalid
의사 클래스 지원.
Cookie의 Expires 최대치가 400일 되도록 과거분에도 반영.
Origin Trial로 window.open()
에 fullscreen
파라메타 추가
Release v8.9.0 · pnpm/pnpm
github.com/pnpm/pnpm/releases/tag/v8.9.0
pnpm v8.9.0 출시.
JSON에서 installation scripts를 허용하는 패키지를 지정 가능한 pnpm.onlyBuiltDependenciesFile
옵션 추가.
캐시에서 복사할 때 reflinks 사용함으로 설치 속도 개선.
Release v1.8.0 - Bifröst · solidjs/solid
github.com/solidjs/solid/releases/tag/v1.8.0
Solid v1.8.0 출시.
Streaming Serialization/Hydration 개선.
<!--#-->
주석은, Nginx 등 Server Side Includes 사용되는 구문과 충돌하므로, <!--$-->
로 변경됨.
Japa
Node.js 테스트 프레임워크.
Unit Test 기능 추가, 플러그인으로 API 목 기능, Playwright 사용한 브라우저 테스트, TypeScript 자료형 정의 테스트, Snapshot Testing 등 기능을 갖음
읽을거리
Next.js 13 vs Remix: An In-depth case study
prateeksurana.me/blog/nextjs-13-vs-remix-an-in-depth-case-study/
Remix v2와 Next.js에서 같은 애플리케이션을 만들며 어떠한 차이가 있는가 보여주는 글.
라우팅과 파일구조, 데이터 페치, 에러 처리, 캐시 다룬다
A comprehensive guide to the dangers of Regular Expressions in JavaScript | Sonar
www.sonarsource.com/blog/vulnerable-regular-expressions-javascript/
정규표현 백트레킹 문제 관련하여
The Hidden Performance Cost of NodeJS and GraphQL
www.softwareatscale.dev/p/the-hidden-performance-cost-of-nodejs
GraphQL에서 resolver 처리가 늘수록 성능이 나빠지는 원인 조사한 글.
resolver에서 Promise 과용 및 async_hooks
이용에 따른 오버헤드와 관련되어있다는 이야기.
슬라이드, 영상
ViteConf
viteconf.org/23/replay/welcome
ViteConf 영상 목록
State of Vite (ViteConf 2023) - Google スライド
docs.google.com/presentation/d/1oZnjsPBnb3OB2HxU88vYkZLa54GV-xNKrF8XkOIqLAU/mobilepresent#slide=id.p
Vite 현재와 앞으로에 관련하여.
Vite는 Dev 빌드에 esbuild, Prod 빌드에 Rollup 사용함에 따라 빌드 결과 차이가 나기 쉬웠던 문제가 있었음.
이에, Rollup 호환하는 Rolldown Bundler를 Rust로 개발한다는 이야기.
Rspack 팀과 협력해서 진행할 예정,
Rspack는 webpack 호환성 있고, Rolldown은 Rollup 호환성있도록 할 것임.
- Design Trade-offs in Bundler: The Rationale Behind Creating Rspack · web-infra-dev/wg · Discussion #1
- rolldown-rs
- Why Vite | Vite
소프트웨어, 도구, 라이브러리
nksaraf/vinxi: The JavaScript Server SDK
Bun.App
영향받은 서버 메타 프레임워크.
라우터 정의하고 경로마다 static/build/node 같이 모드와 핸들러 정의 가능, 정의에 따라 빌드하거나 서버를 빌드함.
Bundler에 Vite, サーバ에 Nitro 사용, 특정 UI 프레임워크 의존하지않은 구조를 목표로 함.
arktypeio/arktype: TypeScript's 1:1 validator, optimized from editor to runtime
TypeScript 자료형 정의 구문을 스키마 DSL로 이용가능 한 validator 라이브러리.
스키마 자료형은 문자열을 전달, 문자열 안에 있는 키워드나 연산자를 파싱해서, 자료형 해석한다.