angular-ecosystem
Angular開発に役立つライブラリやツール、関連情報を効率的に参照できるSkill。
📜 元の英語説明(参考)
Useful Angular libraries, tools, and ecosystem references for Angular development.
🇯🇵 日本人クリエイター向け解説
Angular開発に役立つライブラリやツール、関連情報を効率的に参照できるSkill。
※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o angular-ecosystem.zip https://jpskill.com/download/6829.zip && unzip -o angular-ecosystem.zip && rm angular-ecosystem.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/6829.zip -OutFile "$d\angular-ecosystem.zip"; Expand-Archive "$d\angular-ecosystem.zip" -DestinationPath $d -Force; ri "$d\angular-ecosystem.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
angular-ecosystem.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
angular-ecosystemフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-17
- 取得日時
- 2026-05-17
- 同梱ファイル
- 1
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
スキル: Angular 20+ エコシステム マスターガイド
このマスタースキルドキュメントは、Angular Core、v20 Control Flow、Signals、CDK、Material 3、Router、Forms、Google Maps、NgRx Signals、および RxJS Patterns を統合されたアーキテクチャリファレンスとしてまとめます。
🏗️ 1. コアアーキテクチャ: スタンドアロン & ゾーンレス
コンポーネントの標準
- スタンドアロンコンポーネントのみ:
standalone: trueを使用します。 - OnPush 変更検知: すべてのコンポーネントは
changeDetection: ChangeDetectionStrategy.OnPushを使用する必要があります。 - Signals-first:
input()、output()、model()、viewChild()、およびcontentChild()(Angular 19+ 構文) を使用します。 - Control Flow:
@if、@for (item of items; track item.id)、@switch、および@deferを使用します。*ngIf、*ngForは避けてください。
依存性注入
- よりクリーンでモダンなコードのために、コンストラクタインジェクションの代わりに
inject(Type)を使用します。 - グローバルサービス/トークンは
app.config.tsで提供します。
🚦 2. 状態管理: NgRx Signals
signalStore パターン
- 集中型状態: 機能モジュールまたはバウンデッドコンテキストごとに単一の
signalStoreを定義します。 - withState: プレーンオブジェクトで初期化します (
undefinedの代わりにnullを使用します)。 - withComputed: 派生状態は純粋でリアクティブであるべきです。
- withMethods: ビジネスロジックと状態遷移を処理します。
rxMethod を使用した非同期操作
- 非同期の副作用 (API 呼び出し) には
rxMethodを使用します。 - 並行処理制御: 適切なオペレーターを選択します。
switchMap: 検索、フィルター用 (以前のものをキャンセルします)。exhaustMap: フォーム送信用 (同時クリックを無視します)。concatMap: 順序付けられたシーケンシャル操作用。mergeMap: 独立した並列操作用。
- 構造化されたエラー処理のために、常に
@ngrx/operatorsのtapResponseを使用します。
🧱 3. UI コンポーネントレイヤー: Angular Material 3 & CDK
Material Design 3 (M3)
- トークンベースのテーマ設定: M3 デザインシステムトークン (
--mat-sys-...) と CSS 変数を使用します。 - グローバルスタイル: 最新の SASS ミックスインを使用して
styles.scssで定義します。 - フォーム: 標準的な検証パターンで
<mat-form-field>を使用します。
Angular CDK (Component Dev Kit)
- A11y: アクセシブルなエクスペリエンスのために
A11yModule、FocusTrap、およびLiveAnnouncerを使用します。 - オーバーレイ: カスタムダイアログ、ツールチップ、フローティング UI に
OverlayModuleを使用します。 - 仮想スクロール: 大規模なリスト (100 項目以上) には
CdkVirtualScrollViewportを使用します。 - ドラッグ & ドロップ: リストの並べ替えやボードレイアウトには
@angular/cdk/drag-dropを使用します。
🗺️ 4. ナビゲーション & マッピング
Angular Router
- 遅延ロード: 常に
loadChildren: () => import(...)を使用します。 - 関数型ガード: クラスベースのガードを
inject()を使用した関数に置き換えます。 - リアクティブなパラメーター:
toSignal(route.params)を使用してルートパラメーターをシグナルに変換します。
Google Maps 統合
- 遅延ロード: サービスを介して API スクリプトを動的にロードします。
- API キーのセキュリティ: キーは
environment.tsに保存します (ハードコードは絶対に避けてください)。 - マーカークラスタリング: パフォーマンスを維持するために 50 個以上のマーカーに必要です。
🧪 5. RxJS & Signals 相互運用
バウンダリーパターン
- インフラストラクチャ/ポート: リポジトリから Observable を返します (ストリームベースのデータ用)。
- アプリケーション/ファサード:
toSignal()を使用して Signals に変換します。 - クリーンアップ: 自動購読解除を確実にするために
takeUntilDestroyed()またはtoSignal()を使用します。 - 高コストなストリーム:
shareReplay({ bufferSize: 1, refCount: true })を使用します。
📋 6. フォーム処理: リアクティブ & 型付け
- 厳密な型付け:
FormGroup<T>、FormControl<T>を使用します。 - 検証: エラーは
touched後にのみ表示します。 - Signals 同期:
onChangesまたは明示的な送信メソッドを介してストアを更新します。
♿ 7. アクセシビリティ (A11y)
- WCAG 2.2 レベル AA: 最小要件です。
- セマンティック HTML:
<nav>、<main>、<header>、<footer>を優先します。 - キーボードナビゲーション:
tabindexとフォーカス管理が確実であることを確認します。 - ARIA: ネイティブ HTML が不十分な場合は
aria-label、aria-describedby、およびaria-liveを使用します。
注: このドキュメントは、Black-Tortoise におけるすべての Angular 関連開発の信頼できる情報源です。非準拠のコードは CI パイプラインによって拒否されます。
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
SKILL: Angular 20+ Ecosystem Master Guide
This master skill document consolidates Angular Core, v20 Control Flow, Signals, CDK, Material 3, Router, Forms, Google Maps, NgRx Signals, and RxJS Patterns into a unified architecture reference.
🏗️ 1. Core Architecture: Standalone & Zone-less
Component Standards
- Standalone components only: Use
standalone: true. - OnPush Change Detection: Every component must use
changeDetection: ChangeDetectionStrategy.OnPush. - Signals-first: Use
input(),output(),model(),viewChild(), andcontentChild()(Angular 19+ syntax). - Control Flow: Use
@if,@for (item of items; track item.id),@switch, and@defer. Avoid*ngIf,*ngFor.
Dependency Injection
- Use
inject(Type)instead of constructor injection for cleaner, more modern code. - Provide global services/tokens in
app.config.ts.
🚦 2. State Management: NgRx Signals
The signalStore Pattern
- Centralized State: Define a single
signalStoreper feature module or bounded context. - withState: Initialize with plain objects (use
nullinstead ofundefined). - withComputed: Derived state should be pure and reactive.
- withMethods: Handle business logic and state transitions.
Async Operations with rxMethod
- Use
rxMethodfor async side effects (API calls). - Concurrency Control: Choose the right operator:
switchMap: For searches, filters (cancels previous).exhaustMap: For form submissions (ignores concurrent clicks).concatMap: For ordered sequential operations.mergeMap: For independent parallel operations.
- Always use
tapResponsefrom@ngrx/operatorsfor structured error handling.
🧱 3. UI Component Layer: Angular Material 3 & CDK
Material Design 3 (M3)
- Token-based theming: Use M3 design tokens (
--mat-sys-...) and CSS variables. - Global Styles: Defined in
styles.scssusing the modern SASS mixins. - Forms: Use
<mat-form-field>with standard validation patterns.
Angular CDK (Component Dev Kit)
- A11y: Use
A11yModule,FocusTrap, andLiveAnnouncerfor accessible experiences. - Overlays: Use
OverlayModulefor custom dialogs, tooltips, and floating UI. - Virtual Scroll: Use
CdkVirtualScrollViewportfor large lists (>100 items). - Drag & Drop: Use
@angular/cdk/drag-dropfor list reordering and board layouts.
🗺️ 4. Navigation & Mapping
Angular Router
- Lazy Loading: Always use
loadChildren: () => import(...). - Functional Guards: Replace class-based guards with functions using
inject(). - Reactive Params: Convert route parameters to signals using
toSignal(route.params).
Google Maps integration
- Lazy Loading: Load API script dynamically via a service.
- API Key Security: Store keys in
environment.ts(never hardcode). - Marker Clustering: Required for >50 markers to maintain performance.
🧪 5. RxJS & Signals Interop
The Boundary Pattern
- Infrastructure/Ports: Return Observables from repositories (for stream-based data).
- Application/Facade: Convert to Signals using
toSignal(). - Cleanup: Use
takeUntilDestroyed()ortoSignal()to ensure automatic unsubscription. - Expensive Streams: Use
shareReplay({ bufferSize: 1, refCount: true }).
📋 6. Form Handling: Reactive & Typed
- Strictly Typed: Use
FormGroup<T>,FormControl<T>. - Validation: Show errors only after
touched. - Signals Sync: Update the store via
onChangesor explicit submission methods.
♿ 7. Accessibility (A11y)
- WCAG 2.2 Level AA: Minimum requirement.
- Semantic HTML: Prioritize
<nav>,<main>,<header>,<footer>. - Keyboard Navigation: Ensure
tabindexand focus management are solid. - ARIA: Use
aria-label,aria-describedby, andaria-livewhere native HTML is insufficient.
Note: This document is the source of truth for all Angular-related development in Black-Tortoise. Non-compliant code will be rejected by the CI pipeline.