Fork me on GitHub

2025-09-15: pnpm 10.16(공급망 공격 대책), Deno 2.5, bun install의 뒷면

Translator: rewrite0w0 Edit on GitHub See Revisions

JSer.info #748 - pnpm 10.16가 출시됐다.

새로운 기능과 패키지 출시되고서 최저한 일수 경과할 때까지 설치를 대기하는 minimumReleaseAge 옵션이 추가되었다. 이것으로, 악의 있는 패키지가 즉시 설치되는 것을 막고, 공급망 공격 위험한 경감.
또한, pnpm why --find-by=<pkg> 옵션보다 유연한 의존관계 검색이 가능해지고, Node.js 24 지원도 개선됨.

비슷한 옵션은 renovatebot나 dependabo에도 존재해서, 패키지 추가나 업데이트할 때 멀웨어가 혼입되는 위험성을 낮출 때 이용된다.


Deno 2.5가 출시됐다.

권한 설정 파일 관리해서, 명령어 실행할 때 이용하는 권한세트를 지정하는 --permission-set 플래그가 추가됐다.
또한, Deno.test.{before,after}{Each,All} 메서드 추가, DENO_AUDIT_PERMISSIONS 환경 변수에서 권한 이용 감시 로그를 출력한다.


다음 글에는, bun install 내부 구조와 성능 최적화에 대해 자세히 설명되어있다.

패키지 설치의 보틀넥은 I/O가 아니라, System Call 수에 있다는 시점으로 이야기가 작성되어 있다. 유저 모드와 커널 모드 전환하는 코스트가 패키지 설치할 때 오버헤드 주 요인이므로, Bun으로는 이 매트릭스를 중시해 성능 개선한다.


To support JSer.info


헤드라인


Group Note: CSS Snapshot 2025 | 2025 | News | W3C

www.w3.org/news/2025/group-note-css-snapshot-2025/

css spec rlee

CSS Snapshot 2025 출시


Electron 38.0.0 | Electron

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

Electron ReleaseNote

Electron 38.0.0 출시.
Chromium 140/Node.js 22.18/V8 14으로 업그레이드.
macOS 11(Big Sur) 지원 종료/ELECTRON_OZONE_PLATFORM_HINT 환경 변수/plugin-crashed 이벤트 삭제.
webFrame.routingId 프로퍼티/webFrame.findFrameByRoutingId()는 비권장.
Windows에서 accentColor 커스터마이즈 대응, macOS 메모리 정보/Tray API 확장


Release pnpm 10.16 · pnpm/pnpm

github.com/pnpm/pnpm/releases/tag/v10.16.0

pnpm ReleaseNote

pnpm v10.16.0 출시.
공급망 공격 대책으로 minimumReleaseAge 옵션 추가, pnpm why --find-by=<pkg> 옵션 추가, Node.js 24 대응 개선


Release Version 27.0.0 · jsdom/jsdom

github.com/jsdom/jsdom/releases/tag/27.0.0

JavaScript DOM library ReleaseNote

jsdom 27.0.0 출시.
Npde.js 18 지원 종료, 이벤트 컨스트럭터 지원 추가, CSS 셀렉트엔진을 @asamuzakjp/dom-selector으로 변경


Deno 2.5: Permissions in the config file | Deno

deno.com/blog/v2.5

deno ReleaseNote

Deno v2.5 출시.
--permissin-set 플래그 지원, Deno.test.{before,after}{Each,All} 추가, DENO_AUDIT_PERMISSIONS으로 감시 로그 출력 대응


ESLint v9.35.0 released - ESLint - Pluggable JavaScript Linter

eslint.org/blog/2025/09/eslint-v9.35.0-released/

ESLint reel

ESLint v9.35.0 출시.
try...catch으로 Error Cause 사용해 re-throw할까 확인하는 preserve-caught-error 규칙 추가


읽을거리


How modern browsers work - by Addy Osmani - Elevate

addyo.substack.com/p/how-modern-browsers-work

browser article

브라우저 아키텍처 트랜지션 관련.
Chromium/Blink/V8 관련하여, 네트워크/HTML・CSS・JS파서/레이아웃/이벤트/composite/멀티프로세스/웹사이트 분리/샌드박스화 트랜지션에 대하여.
각 브라우저 엔진 구현의 차이에 대하여


Behind The Scenes of Bun Install | Bun Blog

bun.com/blog/behind-the-scenes-of-bun-install

Bun article performance

패키지 설치 보틀넥은 I/O이 아닌 System Call수로하는 이야기.
user mode와 kernel mode 전환에 코스트가 들어 패키지 설치할 때 오버헤드가 많이 발생.
bun install에는 System Call 숫자를 메트릭트로 사용해 성능 개선함


React Native 새 아키텍처로 이행(2025) - Shopify

shopify.engineering/react-native-new-architecture

React Native article

Shopify의 React Native의 New Architecture으로 이행에 대하여.
최소 코드 변환으로 이행을 우선, 듀얼 아키텍처로 Rollback 가능하도록, App Store와 Play Store 롤아웃 전략에 관하여


The Basics of Anchor Positioning

ishadeed.com/article/anchor-positioning/

css article

CSS Anchor Positioning에 대하여.
anchor-name/position-anchor/anchor()/position-area/position-try-fallbacks 동작에 대하여.


styled-components maintenance mode: A 40% faster fork | Sanity

www.sanity.io/blog/cut-styled-components-into-pieces-this-is-our-last-resort

React css article

styled-components가 관리 정지되었으므로, 성능 개선과 React 19 대응한 fork를 작성하면서, 다른 CSS 프레임워크로 이행하는 이야기


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


krasimir/forket: Forket is a tool that splits your code to client and server so you have RSC (React Server Components) working without a framework.

github.com/krasimir/forket

React library

코드를 클아이언트와 서버로 분리, React Server Component를 다루는 도구


panphora/overtype: The markdown editor that's just a textarea https://overtype.dev

github.com/panphora/overtype

Markdown library editor

WYSIWYG한 Markdown 에디터 라이브러리


embedpdf/embed-pdf-viewer: A PDF viewer that seamlessly integrates with any JavaScript project

github.com/embedpdf/embed-pdf-viewer

JavaScript PDF library

PDF 뷰어를 담는 라이브러리


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