JSer.info #621 - Electron 22.0.0がリリースされました。
Chromium 108、Node.js 16.17.1、V8 10.8へのアップデート、UtilityProcess
モジュールの追加、new-window
イベントの非推奨化などの変更が含まれています。
また、Chromium 109でWindows 7/8/8.1のサポートが終了するため、Electronもこれに合わせるようです。
そのため、Windows 7/8/8.1をサポートする最後のElectronバージョンとなります。
今週はウェブパフォーマンスやJavaScriptのパフォーマンスについての記事が多いです。
Image Formats for the Web | DebugBearはGIFからAVIFまで色々ある画像のパフォーマンスについてまとめられています。
また、Prerender pages in Chrome for instant page navigations - Chrome Developersは、Chrome 108に新しく実装されたprerenderの仕組みについて紹介されています。
Speeding up the JavaScript ecosystem - one library at a timeという記事では、著名なツールでどのような部分に遅くなる処理があるのかを紹介しています。
その他にはWeb Performance Calendar » 2022が今年も開催されているので、ウェブに関するパフォーマンスの記事が多くなっています。
JSer.infoをサポートするには
- 😘 知り合いにJSer.infoをおすすめする
- ❤️ GitHub Sponsorsで@azuのスポンサーになる
- 🐦 X(Twitter)で@jser_infoをフォローする
JSer.info Sponsors
JSer.info SponsorsはGitHub SponsorsとしてJSer.infoを支援してくれている方々です。
ヘッドライン
Electron 22.0.0 | Electron
www.electronjs.org/blog/electron-22-0
Electron 22.0.0リリース。
Chromium 108、Node.js 16.17.1、V8 10.8へのアップデート、UtilityProcess
モジュールの追加、new-window
イベントの非推奨化など。
Windows 7/8/8.1をサポートする最後のElectronバージョンとなる。
Release 5.0.0 · primus/eventemitter3
github.com/primus/eventemitter3/releases/tag/5.0.0
eventemitter3 5.0.0リリース。
Node.js ESMのサポートなど
ECMAScript proposal updates @ 2022-11 | ECMAScript Daily
ecmascript-daily.github.io/ecmascript/2022/12/05/ecmascript-proposal-update
2022年11月に行われたTC39 MeetingによってStatusが変化したECMAScript Proposalのまとめ。
New in Chrome 108 - Chrome Developers
developer.chrome.com/blog/new-in-chrome-108/
Chrome 108の変更点について。
viewportのunitとしてdvh
/lvh
/svh
を追加、Variable fontsのCOLRv1をサポート。
FileSystemSyncAccessHandleのAPIを同期メソッドに変更、Permissions PolicyのOrigin指定に*
(wildcard)を利用できるようになるなど
アーティクル
How TypeScript 4.9 `satisfies` Your Prisma Workflows
www.prisma.io/blog/satisfies-operator-ur8ys8ccq7zb
TypeScript 4.9のsatisfies
operatorの使い方についての記事。
PrismaやZodと合わせた使い方について
Sass製SVG爆速表示ライブラリのご紹介 - dwango on GitHub
dwango.github.io/articles/2022-12_nicolive_svg/
CSSを使ってSVGを切り替える方法とそれを実装したライブラリについて。
CSSのmask-image
を使った方法とanimationstart
で切り替える方法についての比較
Image Formats for the Web | DebugBear
www.debugbear.com/blog/image-formats
ウェブ向けの画像フォーマットとどれを使うべきかについて。
GIF/PNG/JPG/WebP/AVIF/SVGそれぞれの特性と推奨事項。また、AVIFは非可逆圧縮と可逆圧縮どちらもサポートしているが、可逆圧縮の結果はあまり良くない点についてなど
Migrating from Vue 2 to Svelte
escape.tech/blog/from-vue2-to-svelte/
Vue 2からSvelteKitに移行したという話。
Working with Zustand | TkDodo's blog
tkdodo.eu/blog/working-with-zustand
React向けのステート管理ライブラリであるZustandについてのTips。
パフォーマンスに関するTips、アクションとステートの分離、アクションをsetterではなくeventとして扱う、Storeのスコープを小さく保つなど
Prerender pages in Chrome for instant page navigations - Chrome Developers
developer.chrome.com/en/blog/prerender-pages/
Chromeの新しいprerenderについて。
アドレスバーでURLを入力する場合も信頼度に基づいてPrerenderを投機的に行う。
またSpeculation Rules APIでのprerenderのルール定義、prerenderをサーバ側で無効化する方法、prerenderされたかを判定する方法についてなど
Speeding up the JavaScript ecosystem - one library at a time
marvinh.dev/blog/speeding-up-javascript-ecosystem/
不必要な型変換や関数内に関数を作らないことで多くのライブラリはパフォーマンスが改善するという話。
実際のPostCSSプラグインやSVGOなどのコードを例に、どのような場所がパフォーマンスに影響していたかについて
New npm features for secure publishing and safe consumption | The GitHub Blog
github.blog/2022-12-06-new-npm-features-for-secure-publishing-and-safe-consumption/
npmにアクセスするスコープを設定できるfine-grained access tokenの追加、npmのウェブサイト上のCode explorerでコードを閲覧できるようになるなど
スライド、動画関係
An introduction to the LibJS JavaScript engine - Google スライド
docs.google.com/presentation/d/1-chE3GTNFnNRwZqk4Bf3GCPV_nINfKG-NUTM4IeEnVc/edit#slide=id.p
SerenityOS向けにスクラッチでJavaScriptエンジンを書いたというスライド。
ECMA-262の仕様を満たすJITなしのAST/Bytecodeインタープリタをどのように実装していったかについて
ソフトウェア、ツール、ライブラリ関係
shuding/nextra: Simple, powerful and flexible site generation framework with everything you love from Next.js.
Next.jsとMDXベースの静的サイトジェネレータツール。