915 文字
5 分

Frontend Weekly 2025-06-06

Rolldown-Vite 技術プレビュー公開#

日付:2025 年 5 月 30 日

Rust ベースの次世代バンドラー Rolldown を搭載した Vite の技術プレビュー版が公開。rolldown-viteパッケージとして提供され、既存の Vite プロジェクトでviteパッケージの代わりに使用可能。本番ビルド時間が 3 倍から 16 倍の高速化、メモリ使用量も最大 100 倍削減を実現。

{
"dependencies": {
"vite": "npm:rolldown-vite@latest"
}
}

esbuildがオプショナル依存となり、内部の変換や最適化は Oxc で処理。VitePress やメタフレームワークではoverridesを使用してviteパッケージをrolldown-viteに置き換え可能。

出展:Announcing Rolldown-Vite

Vitest 3.2 リリース#

日付:2025 年 6 月 2 日

Vitest 3.2 がリリース。Browser Mode と TypeScript サポートの改善に焦点を当て、新しいメソッドや設定オプションを追加。workspace設定が非推奨となり、代わりにprojectsオプションの使用を推奨。

import { defineConfig } from "vitest/config";
export default defineConfig({
test: {
projects: [{ test: { name: "Unit" } }, { test: { name: "Integration" } }],
},
});

主な新機能として、テストにカスタムメッセージや添付ファイルを追加できるAnnotation APItest.extendフィクスチャのスコープ指定(fileまたはworker)、プロジェクト名のカスタムカラー設定、カスタムブラウザロケーター API の追加など。

test("hello world", async ({ annotate }) => {
// テストにアノテーションを付与できる
await annotate("this is my test");
if (condition) {
await annotate("this should've errored", "error");
}
const file = createTestSpecificFile();
await annotate("creates a file", { body: file });
});

出展:Vitest 3.2

Astro 5.9.0 リリース#

日付:2025 年 6 月 5 日

Astro 5.9.0 がリリース。実験的な Content Security Policy(CSP)サポートの追加、コンテンツローダーでの Markdown レンダラーの提供、アダプターの警告/エラー抑制オプションの追加など。

astro.config.mjs
import { defineConfig } from "astro/config";
export default defineConfig({
experimental: {
csp: true,
},
});

CSP は XSS 攻撃からの保護など、リソースのダウンロードと実行を細かく制御できる重要な機能。Astro の処理済みスクリプトやスタイルのデフォルトのセキュリティを強化し、コンテンツタイプの追加設定も可能。静的ページ、動的ページ、SPA など、すべての Astro レンダリング環境で動作。

出展:Astro 5.9.0

ESLint 9.28.0 リリース#

日付:2025 年 5 月 30 日

ESLint 9.28.0 がリリース。バルクサプレッション機能の改善として--pass-on-unpruned-suppressionsCLI オプションを追加。未使用のサプレッションをエラーとして報告せず、終了コードにも影響を与えないように。

Terminal window
# 未使用のサプレッションを無視
eslint --pass-on-unpruned-suppressions .

また、5 つのコアルールに TypeScript 構文サポートを追加:

  • func-style: TypeScript 固有のオプションallowTypeAnnotationを追加し、オーバーロードされた関数宣言を無視
  • no-magic-numbers: ignoreEnumsignoreNumericLiteralTypesignoreReadonlyClassPropertiesignoreTypeIndexesオプションを追加
  • no-shadow: ignoreTypeValueShadowignoreFunctionTypeParameterNameValueShadowオプションを追加
  • no-use-before-define: enumstypedefsignoreTypeReferencesオプションを追加
  • prefer-arrow-callback: TypeScript サポートを追加

出展:ESLint 9.28.0 released

Jest 30 リリース#

日付:2025 年 6 月 4 日

Jest 30 がリリース。大幅なパフォーマンス向上とメモリ使用量削減を実現。ある TypeScript アプリケーションでサーバーテストが 37%高速化(1350 秒 →850 秒)、メモリ使用量が 77%削減(7.8GB→1.8GB)を記録。

Node.js 14、16、19、21 のサポートを終了し、TypeScript 最低要件を 5.4 に引き上げ。jest-environment-jsdomを jsdom 21 から 26 にアップグレード。.mts.ctsファイルをデフォルトサポート。

新機能としてexpect.arrayOf非対称マッチャー、JavaScript のusingキーワードサポート、jest.advanceTimersToNextFrame()による requestAnimationFrame テスト支援、設定可能なテストリトライ機能を追加。

// 配列要素の型チェック
expect(someArray).toEqual(expect.arrayOf(expect.any(Number)));
// リソース管理構文
test('logs a warning', () => {
using spy = jest.spyOn(console, 'warn');
doSomeThingWarnWorthy();
expect(spy).toHaveBeenCalled();
});

Globals cleanup 機能により、テストファイル間でのメモリリークを防止。globalsCleanup: 'on'設定でメモリ使用量とパフォーマンスの大幅改善が可能。

出展:Jest 30: Faster, Leaner, Better

Storybook 9 リリース#

日付:2025 年 6 月 3 日

Storybook 9 リリース。Interaction、Accessibility、Visual、Coverage テストをワンクリックで実行できる統合テストウィジェットを搭載し、依存関係構造の簡素化により Storybook 8 と比較して 48%の軽量化を実現。Vitest との統合によるブラウザベースのテスト環境、ストーリーを tag でフィルタリング・整理する機能なども追加。

破壊的な変更として、@storybook/addon-actions@storybook/testを含む多くのパッケージの統廃合などが行われた。移行する際はマイグレーションガイドの確認が必要。

出展:Storybook 9

Frontend Weekly 2025-06-06
https://blog.ohirunewani.com/series/frontend-weekly/2025-06-06/
作者
hrdtbs
公開日
2025-06-06
ライセンス
CC BY-NC-SA 4.0