
2026/05/30 8:57
Ember.js 7.0
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
Ember フレームワークは公式にバージョン 7.0 をリリースしました。これは重要なリリースであり、6.10 以降非推奨(deprecated)とされた機能を永久に削除しています。具体的には
import Ember シンタックス、デフォルトの AMD バンドル、およびレガシーな inject インポートなどが含まれます。同時に、Ember 6.12 は既存プロジェクト向けの最終的な長期サポート(LTS)バージョンとして指定されています。このクリーンアップは安定性を最優先しており、6.x ライフサイクルにおいて一連の基礎的改良を行った後、新しいパブリック API がマイナーアップデートのみで登場するよう確保しています。具体的な改良としては、glimmer-vm などの重要なリポジトリの統合、strict モードのデフォルト採用、Embroider+Vite ビルドシステムの導入(6.8 で確立)、および追跡付きコレクションの追加などが挙げられます。
Ember 7.0 へのアップグレードを行うためには、開発者は必須となる二段階のアプローチに従う必要があります:まず Ember 6.12(6.x シリーズの最終バージョン)へアップグレードしてすべてのアクティブな非推奨警告を解決し、その後特定のマイグレーションツールを使用してバージョン 7.0 へと移行します。レガシーなシンタックスまたは古い AMD バンドルに依存するプロジェクトは、7.0 で即時の互換性 breaking changes に直面することになります。一時的に「Classic Blueprint」が開発中の慎重ユーザーへの架け橋として提供されましたが、将来の作業は現在デフォルトに設定されているモダンなビルドシステムと厳格に一致させる必要があります。さらに、このリリースでは特定のバグ修正(例:RFC #1070 のサポート対応、SVG リロードの問題修正)を含んでおり、Ember CLI v7.0 は以前非推奨となっていた API に対して新たな変更を導入するのではなく、自動的に互換性を破棄するように動作することを示しています。
本文
Ember v7.0 リリース発表
概要
Ember プロジェクトより Ember v7.0 のリリースが正式に発表されました。 今回のメジャーバージョンでは、以下の 2 つの変更点が実施されています。
- 廃止(deprecated)された機能の削除:v7.0 時点で廃止された機能をすべて取り除きます。
- バグ修正:多数の誤り修正が含まれています。
本リリースに伴い、前バージョンである 6.12 が Long Term Support (LTS) バージョン に昇格しました。
Ember は既存コードとの後方互換性を維持しつつ、新機能を導入する際マイナーリリースを主に採用する方針を守ってきました。これにより、大規模な破壊的変更を含むメジャーバージョンアップグレード時の課題を大幅に軽減しています。
6.x シリーズにおける改善事項の総括
Ember 6.x の期間中、以下の注目すべき機能が実装・導入されました:
- Ember 6.1
を v2 アドオンとして公開開始。ember-source- Embroider が直接
を消費可能とする機能を強化。ember-source
- Ember 6.3
- RFC #1046 に従い、テンプレートタグコンポーネントをルートテンプレートとしてサポートを追加。
- Ember 6.8(最大の更新点)
- Embroider および Vite ベースのビルドシステムを採用する、新しいアプリブループリントを実装。
- デフォルトで厳格モード(テンプレートタグ)コンポーネント作者形式への移行を完了。
- プロジェクトなしでの個別コンポーネントレンダリングを可能にする
API を追加。renderComponent - JavaScript のネイティブコレクションタイプの追跡可能(tracked)バージョンを実装:
,trackedArray
,trackedObject
,trackedMap
,trackedSet
,trackedWeakMaptrackedWeakSet
Ember コアチームは数年間、Embroider + Vite ビルドシステムおよび厳格モードテンプレートを開発してまいりました。v6.8 でこれらがデフォルト体験として設定され、先行採用者たちが活用する機能を実際に生成したアプリでも享受できます🎉。
また、コミュニティも以下の取り組みを行いました:
- リポジトリのマージ
モノレポジトリをglimmer-vm
にマージ(レンダリングエンジン統合のため)。ember.js
リポジトリをrouter.js
へマージ(ルートアーキテクチャの実験・Route Manager RFC 実装のため)。ember.js
- インフラの強化
- パッケージ公開方法を OIDC へ更新。
- セキュリティ脆弱性削減のため、broccoli および他の依存関係を更新。
- 開発者体験の向上
- 新しいアプリ生成時の廃止警告数を削減する取り組みを継続中。
- テンプレートタグコンポーネント作者形式デフォルト化のために Glint v2 をリリース。
- 移行サポートのためのテンプレートタグコードモッドおよび Vite コードモッドを作成。
- レガシー対応
- 新しいビルドシステムなしでのアップデートを支援する、
を作成し、classic-build-app-blueprint
でサポート。ember-cli-update
- 新しいビルドシステムなしでのアップデートを支援する、
アップグレード方法
推奨プロセス
Ember 6(最終版は 6.12)へのアップグレードを完了し、すべての廃止警告を解消してから、最後に v7.0 へアップグレードするのが一般的です。 アプリおよびアドオンが最新の 6.12 で問題なく動作しており廃止警告がない場合は、追加の修正なしで Ember 7 へ移行可能です。
以下の手順に従ってください:
- アドオンの最新版へ
- アプリで使用されているアドオンは可能な限り最新版へアップグレードを検討してください(依存関係内の廃止 API を減らせるため)。
- 6.12 への移行
- プロジェクトを Ember 6.12 の最新パッチバージョンへアップグレードします。
- コマンド例:
npx ember-cli-update --to 6.12
- 6.8 バウンダリー通過時の調整
- ビルドシステムの変更により、
の設定を適切に調整する必要があります。ember-cli
- ビルドシステムの変更により、
- ビルドの検証
- アプリが正常にビルドされることを確認してください。
- 廃止警告の解消(重要)
- すべての廃止警告を解消してください。これらは v7.0 で削除されます。
- 依存するアドオンが廃止 API を使用している場合は、それらへのアップグレードが必要です。
- 詳細は『Ember 廃止ガイド』をご参照ください。
- 複数のバージョンでのアップグレードが必要な場合は、
の使用を検討してください。ember-cli-deprecation-workflow
- テストスイートのパス確認
- 廃止警告がない状態で、アプリが正常にビルドされテストがパスすることを確認してください。
- v7.0 への移行
- アプリを Ember 7.0 へアップグレードします。
- コマンド例:
npx ember-cli-update --to 7.0
アップグレードでお困りの場合は、Ember フォーラム またはチャットグループをご確認ください。
初期バージョンからの移行 アプリが 6.x より早期のバージョンにある場合は、段階的に LTS バージョンを通過してアップグレードすることを推奨します:
→6.4→6.8の順で行ってください。6.12
Ember.js 7.0 の仕様変更
Ember.js 7.0 は新たなパブリック API を導入せず、v6.x で廃止された API の修正と削除のみが含まれます。
廃止措置
新しい廃止措置は一切導入されません。以下の機能は v7.0 での削除対象となります:
- Ember グローバルの廃止
の使用がなくなります。import Ember from 'ember'- 詳細はプロジェクトの RFC または廃止ガイドを参照してください。
- AMD バンドルの公開停止
による AMD バンドル公開がなくなります。ember-source- v7.0 導入前にオプションでオンにするには機能フラグを使用できます(詳細は廃止ガイド参照)。特定依存関係の更新が必要です。
- インポート方法の変更
から@ember/service
をインポートする方法是できなくなります。inject- 新表記:
とする必要があります。import { service } from '@ember/service'
これらの変更に対処する方法の詳細は、廃止ガイドをご覧ください。
バグ修正
以下に特に注目に値するバグ修正の一部を示します:
- #21076 RFC #1070 に従い、ランタイムテンプレートコンパイラで厳格モードにおけるグローバルデフォルト値をサポート。
- #21098 ランタイムテンプレートコンパイラの明示的スコープに対して
のサポートを追加。this - #21107 インライン SVG 内の LinkTo を修正(アプリのリロード防止)。
- #21109 空文字列にバインドされたラジオボタン・チェックボックスの値属性欠落問題を修正。
- #21122 存在しないエントリへの
が真を返す問題を追跡可能なコレクションで修正。delete() - #21124 キー付き配列に null/undefined アイテムが含まれる場合の
ランタイムクラッシュを修正。{#each} - #21125 ヘルパーの位置引数で負のインデックスへのアクセス時クラッシュ問題を修正。
- #21128 既存キーに対する追跡可能な Map および WeakMap のリアクティビティを修正。
- #21139 デストライアブル(destroyables)の「Array-as-parent」バグに対応する BrandedArray 修正移植。
- #21168
をネイティブ動作に合わせて修正。EmberArray.reduce - #21189 デストラクション後の陳腐なメタデータ参照をクリアし、ガベージコレクション(GC)を可能にする。
- #21202 動的セグメントを含むネストルートにおける
の<LinkTo>
引数を修正。@current-when
Ember CLI v7.0
Ember CLI 7.0 は以下の点に留まります:
- 新たなパブリック API 導入なし
- 新たな廃止措置追加なし
- 新たなバグ修正追加なし
このリリースは、6.x サイクルで以前に廃止されたパブリック API の自動的な削除のみを追加します。
お礼
コミュニティ主導かつ大規模なオープンソースプロジェクトとして、今回のリリースを実現いただいたすべての方へ、心より感謝申し上げます。