本文へ移動
WebView Native UIdocs

ESLint でリストの一貫性を保つ

リストのグループ不足を画面に表示される前に検出します。Ionic Angular アプリでは、@rdlabo/eslint-plugin-rules が iOS 27 で使用するマークアップを確認します。

リストのチェックを有効にする

この設定は Angular / Angular ESLint 21–22 を使用する Ionic Angular 9 向けです。Angular ESLint を設定済みのアプリにプラグイン 22 をインストールします。

npm install --save-dev @rdlabo/eslint-plugin-rules@22

eslint.config.mjs(または同等の CommonJS 設定)の既存の HTML 設定にプラグインを追加します。インラインテンプレートも検査するため、TypeScript 設定の angular.processInlineTemplates は維持してください。

import tseslint from 'typescript-eslint';
import angular from 'angular-eslint';
import rdlabo from '@rdlabo/eslint-plugin-rules';

export default tseslint.config(
  {
    files: ['**/*.ts'],
    languageOptions: { parser: tseslint.parser },
    processor: angular.processInlineTemplates,
  },
  {
    files: ['**/*.html'],
    languageOptions: { parser: angular.templateParser },
    plugins: { '@rdlabo/rules': rdlabo },
    rules: {
      '@rdlabo/rules/require-ion-item-group': 'error',
    },
  },
);

既存のチェックを残すため、これらの項目を現在の設定へ統合してください。rdlabo.configs.recommended を使用している場合、このルールはすでに含まれます。

検出内容を確認する

次のテンプレートが報告対象になります。

<ion-list [inset]="true">
  <ion-item>Notifications</ion-item>
</ion-list>

項目をグループ化し、スタンドアロンコンポーネントに IonItemGroup をインポートします。

<ion-list [inset]="true">
  <ion-item-group>
    <ion-item>Notifications</ion-item>
  </ion-item-group>
</ion-list>

このルールはインセットでないリストを含め、すべての ion-list を確認します。ラジオ、並べ替え、アコーディオンのグループにも対応します。対象は Angular テンプレートで、React・Vue のテンプレートは検査しません。

レイアウト例は ion-item-group の使い方、対応構造と自動修正はルールのリファレンスを参照してください。

チェックを継続する

依存関係をインストールした後、ローカルと CI で実行します。

npx eslint 'src/**/*.{ts,html}' --max-warnings 0

Angular プロジェクトのソースディレクトリーが異なる場合はパスを調整します。余白、色、遷移は引き続き目視で確認してください。このルールはリスト構造を検査します。