この変更が意味すること
Svelte 5.56.0 は機能追加とパフォーマンス改善に焦点を当てたマイナーリリースです。最大の変更はテンプレート内での declarations 構文サポートで、コンポーネントのテンプレート部分でより柔軟な変数宣言が可能になります。
合わせて、DOM 要素の生成方法の改善(createElementNS → createElement への切り替え)や、内部データ構造の最適化など、複数のパフォーマンス改善が含まれています。Breaking Changes はなく、Svelte 5 系の既存プロジェクトは安全にアップデートできます。
主な変更点
テンプレート内での declarations 構文対応(新機能)
テンプレート内で declarations を使った変数宣言が可能になりました。これにより、テンプレートロジックをスクリプトブロックに分離せずに、テンプレート内でインラインの宣言を記述できるようになります。(#18282)
createElement への切り替えによるパフォーマンス改善
HTML 要素の生成時に createElementNS の代わりに createElement を使用するよう変更されました。SVG や MathML などの名前空間を必要としない通常の HTML 要素については、より軽量な createElement が使われるようになります。(#18262)
current_sources の Set 化による O(1) メンバーシップチェック
リアクティビティシステムの内部で使用される current_sources を配列から Set に変更しました。これにより、メンバーシップチェックが O(n) から O(1) に改善され、多くのリアクティブソースを持つコンポーネントのパフォーマンスが向上します。(#18278)
コンポーネント内の同一ホイストテンプレートの重複排除
コンポーネント内に同一のホイストテンプレートが複数存在する場合、重複排除してバンドルサイズを削減します。コンポーネントが同じテンプレートスニペットを繰り返し使用するケースでバンドルサイズの最適化が期待できます。(#18320)
rest_props 除外リストのモジュールスコープ Set 化
rest_props を使用するコンポーネントにおいて、除外プロパティのリストをコンポーネントインスタンスではなくモジュールスコープの Set としてホイストするよう変更されました。同一コンポーネントが複数インスタンス化される場合に、メモリ使用量が削減されます。(#18252)
EOL / サポート状況
Svelte は endoflife.date の公式サポートサイクル情報が登録されていません。現在の安定版は Svelte 5 系です。npm の latest タグは常に最新の Svelte 5 安定版を指します。
| チャンネル | バージョン | ステータス |
|---|---|---|
| latest | 5.56.0 | ✅ 現行安定版 |
| next (Svelte 5 開発時) | 5.0.0-next.272 | 旧プレリリース |
Svelte 4 以前は非推奨となっており、Svelte 5 へのマイグレーションが推奨されます。
開発者への影響
- テンプレート declarations を活用したいケース: 新機能を試すために 5.56.0 へのアップデートが必要です。
- パフォーマンス重視のプロジェクト: 複数の内部最適化により、特に多くのリアクティブソースを持つ大規模コンポーネントでパフォーマンスが改善されます。
- バンドルサイズ削減: 同一テンプレートの重複排除により、繰り返しパターンを使用するコンポーネントでバンドルサイズが削減される可能性があります。
- Breaking Changes なし: 既存の Svelte 5 プロジェクトへの影響はなく、安全にアップデートできます。
アップデート方法
# npm
npm install svelte@5.56.0
# または latest を指定
npm install svelte@latest
# yarn
yarn add svelte@5.56.0
# pnpm
pnpm add svelte@5.56.0
SvelteKit を使用している場合は合わせて更新してください:
npm install svelte@latest @sveltejs/kit@latest
データソース: GitHub Releases API, npm Registry AI解説は Claude API により自動生成されています。正確性については原文をご確認ください。
