Fork me on GitHub

2023-10-25のJS: Node.js 21(Current)とNode.js 20.9.0(LTS)、Yarn 4、tsc --isolatedDeclarations

Edit on GitHub 編集履歴を見る

JSer.info #666 - Node.js 21がリリースされました。

奇数バージョンはいわゆる開発バージョンとなりLTSにはなりません。
Node.js 21では、Fetch/WebStreams APIのStable化、V8 11.8へのアップデート、node --testでのglobのサポートが追加されています。
また、モジュールのデフォルトをESMにできる--experimental-default-type、Magic BytesでWasmを判定する--experimental-wasm-modulesの追加されています。
これらのフラグについては次の記事で解説しています。

また、fs.writeFileflushオプションの追加、StreamsとHTTPのパフォーマンス改善、navigatorのグローバルオブジェクトをサポートなども追加されています。


同じくNode.js v20.9.0がリリースされています。

Node.js v20.9.0は、Node.js 20.x のLTSの開始となるバージョンです。
Node.js 20.xのLTSは、2026-04-30までメンテナンスされる予定です。


パッケージマネージャーであるYarn 4.0がリリースされました。

Node.js 12/14/16のサポート終了、yarn set versionpackageManagerフィールドを更新するように変更されています。
ロックファイルとレジストリのメタデータが一致しているかを検証するHardened Modeの追加、制約エンジンをJSベースに置き換えが行われています。
またYarn 2/3ではプラグインとなっていたyarn upgrade-interactiveyarn stageをコアに取り込み、パフォーマンスの改善なども含まれています。


JSer.infoをサポートするには

JSer.info Sponsors

JSer.info SponsorsGitHub SponsorsとしてJSer.infoを支援してくれている方々です。


ヘッドライン


Release v0.3.7 · web-infra-dev/rspack

github.com/web-infra-dev/rspack/releases/tag/v0.3.7

rspack ReleaseNote

rspack v0.3.7リリース。
experiments.rspackFuture.newResolverで新しいResolverをOpt-inできるように。
styled-componentsのサポート、Vue 2でのCSSの抽出をサポートなど


Rspress, the Rspack-based static site generator · web-infra-dev · Discussion #5

github.com/orgs/web-infra-dev/discussions/5

Rust document Tools ReleaseNote

RspackベースのDocusarusu/VitePressライクな静的サイトジェネレータであるRspress 1.0.0リリース。


Release v3.8.0 · nuxt/nuxt

github.com/nuxt/nuxt/releases/tag/v3.8.0

Vue library ReleaseNote

Nuxt.js v3.8.0リリース。
Nuxt DevTools 1.0、@nuxt/imageの自動インストール、アプリの構成を定義したメタファイルの出力に対応、NuxtLinkのデフォルトの挙動を設定できるように。
useAsyncDatauseFetchdeepオプションの追加、getCachedDataでカスタムキャッシュをサポートなど


Storybook 7.5

storybook.js.org/blog/storybook-7-5/

Design Development Tools ReleaseNote

Storybook 7.5リリース。
Vite 5のサポート、storiesOfを非推奨化。
Next.jsとAngularのサポート改善、Lit 3.0のサポートなど


Announcing TanStack Query v5 | TanStack Blog

tanstack.com/blog/announcing-tanstack-query-v5

React Vue Solid Svelte HTTP library ReleaseNote

TanStack Query v5リリース。
APIの引数の形式を変更、Suspenseのサポート、開発者ツールの刷新など。


Release: Yarn 4.0 🪄⚗️ | Yarn

yarnpkg.com/blog/release/4.0

yarn ReleaseNote

Yarn 4.0リリース。
Node.js 12/14/16のサポート終了、yarn set versionpackageManagerフィールドを更新するように。
ロックファイルとレジストリのメタデータが一致しているかを検証するHardened Modeの追加、制約エンジンをJSベースに置き換え。
yarn upgrade-interactiveyarn stageをコアに取り込み、パフォーマンスの改善など


Release v0.3.8 · web-infra-dev/rspack

github.com/web-infra-dev/rspack/releases/tag/v0.3.8

rspack ReleaseNote

rspack v0.3.8リリース。
Top-Level awaitのサポートなど


Node v20.9.0 (LTS) | Node.js

nodejs.org/en/blog/release/v20.9.0

nodejs ReleaseNote

Node.js v20.9.0リリース。
Node.js 20.x系のLTSとなるバージョン。
2026年4月までメンテナンスされる予定。


Node.js 21 is now available! | Node.js

nodejs.org/en/blog/announcements/v21-release-announce

nodejs ReleaseNote

Node.js v21リリース。
current(開発版)となるメジャーバージョン。
Fetch/WebStreams APIのStable化、V8 11.8へのアップデート、node --testでのglobのサポート。
モジュールのデフォルトをESMにできる--experimental-default-type、Magic BytesでWasmを判定する--experimental-wasm-modulesの追加。
fs.writeFileflushオプションの追加、StreamsとHTTPのパフォーマンス改善、navigatorのグローバルオブジェクトをサポートなど


アーティクル


The State of WebAssembly 2023

blog.scottlogic.com/2023/10/18/the-state-of-webassembly-2023.html

WebAssembly Survey

WebAssemblyについて開発者アンケートの結果


Goodbye, Node.js Buffer — Sindre Sorhus

sindresorhus.com/blog/goodbye-nodejs-buffer

nodejs opinion article

Node.jsのBufferはブラウザとの互換性がないため、Uint8Arrayを代わりに使おうという話。
現在のBufferUint8Arrayのサブクラスとして実装されているが、slice()の動作の違いや移植性が悪いというなどの問題がある。
Uint8Arrayを直接扱う方法やマイグレーションなどについて


JS Decorators Explained: 10 Years Journey to the Real Implementation | Binary Studio

binary-studio.com/blog/ecmascript-decorators/

JavaScript ECMAScript article history

現在Stage 3のDecoratorが、どのように今の形になったかについて


スライド、動画関係


Faster TypeScript builds with --isolatedDeclarations by Titian-Cornel Cernicova-Dragomir - GitNation

portal.gitnation.org/contents/faster-typescript-builds-with-isolateddeclarations

TypeScript video performance

TypeScriptの型定義ファイルの出力をファイルごとに行える--isolatedDeclarationsオプションを実装しているという話。
現在のTypeScriptの型定義の生成は依存グラフや推論された型に依存している。
いくつかの制限があるがファイルごとに独立して型定義を生成できるようにすることで、他のツールも型定義の生成が可能になり、またファイルごとに並列で処理できるためパフォーマンスが向上するという話。


BlinkOn 18 - Sunnyvale + Virtual - YouTube

www.youtube.com/playlist?list=PL9ioqAuyl6UKYm7EYVa7FcKCR2kDCudII

blink Chrome video Conference

BlinkOn 18の動画まとめ


ソフトウェア、ツール、ライブラリ関係


AlexSergey/rockpack: Rockpack is a simple solution for creating React Application with Server Side Rendering, bundling, linting, testing within 5 minutes

github.com/AlexSergey/rockpack

React Tools library TypeScript

Create React App的なReactでのアプリケーション開発をするツールキット


この記事へ修正リクエストをする
JSer.info Slackに参加する