Frontend Weekly 2025-08-29
ESLint v9.34.0、multithread lintingをサポート
日付:2025年8月22日
ESLint v9.34.0 で multithread linting(複数のスレッドを用いて複数のファイルを同時に処理する機能)が導入された。大規模プロジェクトや潤沢な環境であれば大幅なパフォーマンス改善が期待できる。
Multithread lintingは--concurrency
オプションで有効にできる。--concurrency=auto
では、最適なスレッド数が自動的に選択される。数値によりスレッド数を指定することも可能。
eslint --concurrency=auto
Multithread linting機能を紹介する記事では、次の利用を推奨している。
--concurrency=auto
に頼らずマシン毎に最適なスレッド数を指定する。- 最適なスレッド数を見つけるにはマシンの物理コアの半分から始めて、より高い/低い値をテストする。
- 増分実行を高速するために
--cache
と併用する。
出展:ESLint v9.34.0 released - ESLint - Pluggable JavaScript Linter
GitHub、WebP画像をサポート
日付:2025年8月28日
GitHubのissueやpull requestsに添付されたWebP画像やリポジトリやGistにアップグレードされたWebP画像がインラインでレンダリングされるようになった。
GitHub、リポジトリ作成UIの変更
日付:2025年8月26日
GitHubでリポジトリを作成する画面のUIの変更が一般公開された。
またリポジトリインサイトのコミットページが更新。コミットグラフをスクリーンリーダーで表示できるようになった。CSVまたはPNG形式でダウンロードすることも可能。
Rspack 1.5、ビルドパフォーマンス大幅改善
日付:2025年8月26日
Rspack 1.5がリリースされ、ビルドパフォーマンスの大幅な改善を実現。特に大規模プロジェクトでの効果が顕著で、barrel file最適化によりモジュール解決が49%削減、ビルド時間が46%短縮された。
主な改善点として、Rust製のネイティブファイルシステムウォッチャーの導入によりHMRパフォーマンスが50%向上、ブラウザ環境での直接実行を可能にする@rspack/browser
パッケージの追加、定数とTypeScript enumのクロスモジュール最適化などが挙げられる。
Zod 4.1がCodecs APIを導入、双方向データ変換をサポート
日付:2025年8月23日
Zod 4.1が新しいz.codec()
APIを導入した。従来の.transform()
が一方向のみだったのに対し、双方向変換を可能にし、型安全性と柔軟性を向上させた。
基本的な使用例:
const stringToDate = z.codec( z.string(), // 入力スキーマ:ISO文字列 z.date(), // 出力スキーマ:Dateオブジェクト { decode: str => new Date(str), // 文字列 → Date encode: date => date.toISOString(), // Date → 文字列 });
// 双方向変換stringToDate.decode("2024-01-15T10:30:00.000Z"); // DateオブジェクトstringToDate.encode(new Date()); // "2024-01-15T10:30:00.000Z"
Codecsの特徴:
- 双方向変換:
decode
(入力→出力)とencode
(出力→入力)の両方を定義可能 - 型安全性:
.decode()
は厳密な型チェックを行い、.parse()
よりも安全 - 非同期対応:変換関数をasync/awaitで記述可能
- 組み合わせ自由:他のZodスキーマと自由に組み合わせ可能
公式が次のようなコピー&ペーストで利用可能な標準的なコーデック実装をいくつか提供している。
const stringToBigInt = z.codec(z.string(), z.bigint(), { decode: str => BigInt(str), encode: bigint => bigint.toString(),});
const jsonCodec = z.codec(z.string(), z.json(), { decode: jsonString => JSON.parse(jsonString), encode: value => JSON.stringify(value),});
Cloudflare Workers AssetsのJavaScript Content-Typeがtext/javascriptに変更
日付:2025年8月25日
Cloudflare Workers AssetsのJavaScriptファイルのContent-Typeがapplication/javascript
からtext/javascript
に変更された。HTML Living Standardで推奨される標準的なMIMEタイプへの対応。
両方のMIMEタイプをサポートする主要ブラウザでは後方互換性があり、既存の動作に影響はない。次回のデプロイで反映される。
Bun v1.2.21がリリース、MySQL/SQLite対応とYAMLサポートを追加
日付:2025年8月25日
Bun v1.2.21がリリース。SQLクライアントBun.SQL
の拡張が行われ、MySQL/MariaDB、SQLite対応が追加された。これにより、PostgreSQL、MySQL、SQLiteの統一APIを提供できるようになった。
// MySQL接続例const sql = new SQL({ adapter: "mysql", hostname: "127.0.0.1", username: "user", password: "password", database: "buns_burgers",});
// Run a queryconst users = await sql`SELECT * FROM users;`.all();console.log(users);
// SQLiteメモリDB例const db = new SQL(":memory:");
また.yaml
/.yml
ファイルのインポートが可能になった。Bun.YAML.parse
によるランタイムパースが行われる。