Fork me on GitHub

2023-10-10: Rollup 4.0.0, 앞으로의 Vite(Rustify Vite), pnpm v8.9.0

Translator: rewrite0w0 Edit on GitHub See Revisions

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


헤드라인


Announcing TypeScript 5.3 Beta - TypeScript

devblogs.microsoft.com/typescript/announcing-typescript-5-3-beta/

TypeScript ReleaseNote

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 ReleaseNote

Rollup v4.0.0 출시.
Node.js 14/16 지원 종료, 파서로 Acorn 대신 SWC.
비권장 옵션 삭제


Chrome 119 beta - Chrome for Developers

developer.chrome.com/en/blog/chrome-119-beta/

Chrome ReleaseNote

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 ReleaseNote

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 JavaScript library ReleaseNote

Solid v1.8.0 출시.
Streaming Serialization/Hydration 개선.
<!--#--> 주석은, Nginx 등 Server Side Includes 사용되는 구문과 충돌하므로, <!--$-->로 변경됨.


Japa

japa.dev/docs/introduction

JavaScript nodejs testing library Tools

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/

React Remix Next.js article

Remix v2와 Next.js에서 같은 애플리케이션을 만들며 어떠한 차이가 있는가 보여주는 글.
라우팅과 파일구조, 데이터 페치, 에러 처리, 캐시 다룬다


A comprehensive guide to the dangers of Regular Expressions in JavaScript | Sonar

www.sonarsource.com/blog/vulnerable-regular-expressions-javascript/

JavaScript RegExp article

정규표현 백트레킹 문제 관련하여


The Hidden Performance Cost of NodeJS and GraphQL

www.softwareatscale.dev/p/the-hidden-performance-cost-of-nodejs

nodejs Promises performance article

GraphQL에서 resolver 처리가 늘수록 성능이 나빠지는 원인 조사한 글.
resolver에서 Promise 과용 및 async_hooks 이용에 따른 오버헤드와 관련되어있다는 이야기.


슬라이드, 영상


ViteConf

viteconf.org/23/replay/welcome

vite Conference video

ViteConf 영상 목록


State of Vite (ViteConf 2023) - Google スライド

docs.google.com/presentation/d/1oZnjsPBnb3OB2HxU88vYkZLa54GV-xNKrF8XkOIqLAU/mobilepresent#slide=id.p

vite slide Rust rollup bundler

Vite 현재와 앞으로에 관련하여.
Vite는 Dev 빌드에 esbuild, Prod 빌드에 Rollup 사용함에 따라 빌드 결과 차이가 나기 쉬웠던 문제가 있었음.
이에, Rollup 호환하는 Rolldown Bundler를 Rust로 개발한다는 이야기.
Rspack 팀과 협력해서 진행할 예정,
Rspack는 webpack 호환성 있고, Rolldown은 Rollup 호환성있도록 할 것임.


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


nksaraf/vinxi: The JavaScript Server SDK

github.com/nksaraf/vinxi

vite server library

Bun.App 영향받은 서버 메타 프레임워크.
라우터 정의하고 경로마다 static/build/node 같이 모드와 핸들러 정의 가능, 정의에 따라 빌드하거나 서버를 빌드함.
Bundler에 Vite, サーバ에 Nitro 사용, 특정 UI 프레임워크 의존하지않은 구조를 목표로 함.


arktypeio/arktype: TypeScript's 1:1 validator, optimized from editor to runtime

github.com/arktypeio/arktype

TypeScript library

TypeScript 자료형 정의 구문을 스키마 DSL로 이용가능 한 validator 라이브러리.
스키마 자료형은 문자열을 전달, 문자열 안에 있는 키워드나 연산자를 파싱해서, 자료형 해석한다.


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