JSer.info #630 - Node.js v18.14.0がリリースされました。
Node.js v18.14.0は、npm 9.3.1へのメジャーアップデートが含まれています。
npm 9には、いくつかのコマンドの削除やデフォルト設定の変更などが含まれています。
npmのアップデートによるパッケージのNode.jsのテストに失敗がないこと、ロックファイルが自動で変更されないことなどを条件に、Node.jsのminor updatesに含まれることになりました。詳しい条件は次のページにまとめられています。
または、Node.js v19.6.0では、npm v9.4.0が同梱されています。
npm v9.4.0ではpnpmライクなインストールモードである--install-strategy=linked
が実験的にサポートされています。
ブラウザ互換性に関して重点的に取り組む分野を決めたInterop 2023が開始されました。
CSSではContainer Queries、CSS Grid、:has()
など。
JSでは、Module、Offscreen Canvas、Pointer Eventsなど。
そのほかにはURLやWebCodecsなどが重点分野として選ばれています。
各ブラウザ関係者が記事を公開していますが、取り組む機能についてはWebKitのブログにまとまっています。
ブラウザごとの実装状況は次のページで確認できます。
JSer.infoをサポートするには
- 😘 知り合いにJSer.infoをおすすめする
- ❤️ GitHub Sponsorsで@azuのスポンサーになる
- 🐦 X(Twitter)で@jser_infoをフォローする
JSer.info Sponsors
JSer.info SponsorsはGitHub SponsorsとしてJSer.infoを支援してくれている方々です。
ヘッドライン
Release v2.0.0 · pmndrs/jotai
github.com/pmndrs/jotai/releases/tag/v2.0.0
Jotai 2.0.0リリース。
createStore
APIをexpose。
破壊的な変更として、get()
が自動でPromiseをresolveしないように、initialValues
をstore
で渡すように変更など
ECMAScript proposal updates @ 2023-01 | ECMAScript Daily
ecmascript-daily.github.io/ecmascript/2023/02/03/ecmascript-proposal-update
2023年1月のTC39ミーティングでのProposalのステータス変更のまとめ。
ArrayにImmutableメソッドを追加するProposalがStage 4となりES2023に含まれる。
Node.jsのAsyncStorage APIとよく似ているAsync Contextが提案された。
Node v18.14.0 (LTS) | Node.js
nodejs.org/en/blog/release/v18.14.0/
Node.js v18.14.0リリース。
npm 9.3.1を同梱するように変更。
npm 8から9は破壊的な変更を含むが、アップデートによるパッケージのテストに失敗がないこと、ロックファイルが自動で変更されないことなどを条件にNode.jsのminor updateで取り込まれる。
Node v19.6.0 (Current) | Node.js
nodejs.org/en/blog/release/v19.6.0/
Node.js v19.6.0リリース。
--experimental-loader
で読み込んだLoaderが、後ろで読み込むLoaderに対して適用されるように。
npm 9.4.0へアップデートし--install-strategy=linked
をサポート
Release v9.4.0 · npm/cli
github.com/npm/cli/releases/tag/v9.4.0
npm v9.4.0リリース。
pnpmライクなインストール戦略である--install-strategy=linked
をサポート。
Isolated modeと言われていたRFCの実装。
アーティクル
Learn Images
<img>
タグなどの画像についてのチュートリアル。
レスポンシブ画像、画像とCLSなどのパフォーマンスメトリクス、画像フォーマットごとの特徴、画像と配信について
What's New In DevTools (Chrome 110) - Chrome Developers
developer.chrome.com/en/blog/new-in-devtools-110/
Chrome 110の変更点について。
ロード時にPerformanceタブをクリアするように、User Flowの改善、Source表示をデフォルトで整形するように、VueやTSXなどのシンタックスハイライトに対応。
Auto Completeの改善など
ElementInternals and Form-Associated Custom Elements | WebKit
www.webkit.org/blog/13711/elementinternals-and-form-associated-custom-elements/
Custom ElementのElementInternals
について。
Custom Elementでaria-*
属性を固定してしまう問題を#internals.aria*
での回避、Form Validationを扱える#internals.setFormValue
など。
On building the enterprise-grade Node.js applications | Code Flashbacks
www.codeflashbacks.com/announcing-the-enterprise-node-js-service-template/
Node.jsでのエンタープライズアプリケーションを作る際のテンプレートプロジェクトについて。
Fastify、DDD、E2Eテスト、グローバルのエラー処理、分散トレース向けのx-request-id
の設定、テスト、Type Safeな設定管理、Prismaを使ったDB管理などを含む
サイト、サービス、ドキュメント
web-platform-tests dashboard
ブラウザ互換性に関して重点的に取り組む分野を決めたInterop 2023が開始された。
CSSではContainer Queries、CSS Grid、:has()
など。
JSでは、Module、Offscreen Canvas、Pointer Eventsなど。
そのほかにはURLやWebCodecsなどが重点分野として選ばれている。
- Interop 2023: continuing to improve the web for developers
- Announcing Interop 2023 - Mozilla Hacks - the Web developer blog
- Pushing Interop Forward in 2023 | WebKit
- Microsoft Edge and Interop 2023 - Microsoft Edge Blog
- Igalia and Interop 2023 | Igalia
- Interop 2023 - Bocoup
deps: replace url parser with Ada by anonrig · Pull Request #46410 · nodejs/node
github.com/nodejs/node/pull/46410
Node.jsのURL
をada-urlというC++で実装したものに切り替える。
現在のURLの実装と比較してパフォーマンスが改善されている。
ソフトウェア、ツール、ライブラリ関係
CodeIntelligenceTesting/jazzer.js: Coverage-guided, in-process fuzzing for the Node.js
github.com/CodeIntelligenceTesting/jazzer.js
libFuzzerベースのFuzzingライブラリ
tanekloc/tmsg: Type-safe i18n library for TypeScript apps. Based on and largely compatible with MessageFormat.
messageformatの機能をサポートしたi18nライブラリ。
型でテンプレートをパースすることで、テンプレートにない値を渡すとコンパイルエラーにできる
shadcn/ui - Beautifully designed components built with Radix UI and Tailwind CSS.
Radix UIとTailwind CSSを使ったReact UIフレームワーク