Angular 18 Polyfills警告の解決方法
Angular 18にアップグレード後、ng serve
実行時に次の警告が表示される場合:
▲ [WARNING] Polyfill for "@angular/localize/init" was added automatically. [plugin angular-polyfills]
将来この機能は削除されます。"angular.json"の"polyfills"セクションにポリフィルを追加してください
この警告はAngularのポリフィル設定変更によるもので、以下で完全解決します。
警告発生時の典型的な設定状態
json
// angular.json
"build": {
"builder": "@angular-devkit/build-angular:browser-esbuild",
"options": {
"polyfills": [
"src/polyfills.ts" // ポリフィルファイルを指定
],
...
}
}
typescript
// src/polyfills.ts
import '@angular/localize/init'; // 警告対象のインポート
推奨解決方法
angular.json
を修正diff"polyfills": [ "src/polyfills.ts", + "@angular/localize/init" // 直接追加 ]
polyfills.ts
からインポートを削除diff- import '@angular/localize/init';
ファイルが空になったら削除
bashrm src/polyfills.ts # 他のインポートが無い場合
動作確認
変更後にng serve
を再実行すると警告が消えます。Angular 18.0.3以降で検証済みです。
注意点
@angular/localize
パッケージが未インストールの場合:
bash
npm install @angular/localize
補足: ライブラリ開発時の例外対応
Angularライブラリ開発中でpolyfills
設定が無い場合:
型参照に変更
typescript/// <reference types="@angular/localize" />
tsconfig.jsonを更新
json{ "compilerOptions": { "types": ["@angular/localize"] // 型定義を追加 } }
参考: Angular公式i18nガイド
ベストプラクティス
- 重要: 警告は将来のAngularバージョンで機能停止する予告です。早急に対処を
- ポリフィルファイル(
polyfills.ts
)は非推奨傾向。angular.json
直指定が安定解 @angular/localize/init
は国際化(i18n)を利用する場合のみ必要- Angular 19以降では警告がエラーに昇格する可能性あり
以上のように設定を更新することで、警告が解消され将来のAngularバージョンに対応可能な状態になります。