Angular フレームワークの v6.0.0 リリースにあわせ、Angular CLI も v1.7 系から v6.0 へメジャーアップデートをおこなう予定です。 この記事では Angular CLI v1.7 系で作成した開発環境から v6.0 系の開発環境へマイグレーションする方法を解説します。
この記事は安定版リリース前の RC バージョンを使用しています。
前提
次のような開発環境を想定しています。
- グローバルに Angular CLI v1.7 系がインストールされている状態
-
ng new
が可能な状態
-
- Angular CLI v1.7 系に依存した状態のプロジェクトが存在する状態
- package.json の
@angular/cli
が v1.7 系、かつ.angular-cli.json
ファイルが存在する状態
- package.json の
移行ステップ
1. プロジェクトローカルの Angular CLI のバージョンを更新する
グローバルではなく、プロジェクトローカルの Angular CLI を v6.0 系に更新します。 yarn であれば次のコマンドで更新します。
yarn add --dev @angular/cli@^6.0.0-rc.2
diff はこのようになります。
この時点ではプロジェクトローカルのng
コマンドがアップデートされただけで、プロジェクトのマイグレーションは完了していません。 次のステップで、ng build
などのコマンドが使用可能な状態にプロジェクトをマイグレーションします。
2. 各種設定ファイルをマイグレーションする
Angular CLI v1.7 から v6.0 へのアップデートのうち、最大の変更は.angular-cli.json
ファイルからangular.json
ファイルへの移行です。 これまで Angular CLI の各種設定を記述していた.angular-cli.json
ファイルは、名前だけでなく内部の JSON 構造も互換性のない新しいangular.json
に変わります。
とはいえ今までの設定をすべて書き直す必要はなく、Angular CLI v6 には古い形式の.angular-cli.json
からangular.json
ベースのプロジェクトに自動でマイグレーションしてくれる機能があります。 Angular CLI v1.7.3 のプロジェクトをマイグレーションするには、次のようにコマンドを実行します。
ng update @angular/cli --migrate-only --from=1.7.3
diff はこのようになります。
このコマンドを一度実行すれば、以降は Angular CLI v6 による開発をおこなえるようになります。
注意
- RC.2 時点では、
ng update
後のパッケージインストールが npm になります。- グローバルの
packageManager
設定はマイグレーションされないため。
- グローバルの
TL;DR
- まずプロジェクトローカルの Angular CLI をアップデートする
-
yarn add --dev @angular/cli@^6.0.0-rc.2
-
-
ng update
コマンドでプロジェクトを v6 用にマイグレーションする-
ng update @angular/cli --migrate-only --from=1.7.3
-