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バージョンに対応可能な状態になります。