mcpField
A
angular-standalone

angular-standalone

github.com/oguzhan18開発7189 回インストール31 週間前に更新
リポジトリ

angular-standalone について

スタンドアロンコンポーネントで Angular アプリを構築するための開発ガイドです。依存関係の指定、アプリの起動、関数型プロバイダー、ルーティング、遅延読み込み、NgModule からの移行を扱います。

主な機能

  1. 01スタンドアロンコンポーネントの作成
  2. 02imports 配列での依存関係指定
  3. 03bootstrapApplication による起動
  4. 04関数型プロバイダーとルーティングの設定
  5. 05スタンドアロンコンポーネントの遅延読み込み
  6. 06NgModule からの移行

活用シーン

  1. 01NgModule ベースのコンポーネントを使わない Angular アプリの構築
  2. 02スタンドアロンアプリのルーティング設定
  3. 03機能コンポーネントの必要時読み込み
  4. 04移行スキーマによる既存コンポーネントの変換

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/oguzhan18/angular-ecosystem-skills --skill angular-standalone

インストール後、Claude Code で/angular-standaloneを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/discussions/
_INDEX.md
references/docs/
_INDEX.md
references/issues/
_INDEX.md
references/releases/
_INDEX.md

詳細

Angular スタンドアロンコンポーネント

バージョン: Angular 21(2025) タグ: スタンドアロン、コンポーネント、インポート、ブートストラップ

参考資料: スタンドアロンガイド • 移行

API の変更点

このセクションでは、バージョン固有の最近の API の変更点について説明します。

  • 新機能:スタンドアロンがデフォルト — Angular 17 以降、新しいコンポーネントはデフォルトでスタンドアロンです

  • 新機能:スタンドアロン向けの provideRouter — RouterModule の代わりに関数型プロバイダーを使用します

  • 新機能:ng generate @angular/core:standalone — 移行用スキーマティック

  • 非推奨:NgModule — スタンドアロンコンポーネントへの移行が推奨されます

ベストプラクティス

  • スタンドアロンコンポーネントを作成します
@Component({
  standalone: true,
  imports: [CommonModule, MatButtonModule],
  selector: 'app-my',
  template: `<button>Click</button>`
})
export class MyComponent {}
  • 依存関係には imports 配列を使用します
@Component({
  standalone: true,
  imports: [
    CommonModule,
    RouterModule,
    MatCardModule,
    MyChildComponent
  ],
  template: `
    <mat-card>
      <app-my-child></app-my-child>
    </mat-card>
  `
})
export class ParentComponent {}
  • スタンドアロンコンポーネントをブートストラップします
// main.ts
import { bootstrapApplication } from '@angular/platform-browser';
import { AppComponent } from './app/app.component';
import { appConfig } from './app/app.config';

bootstrapApplication(AppComponent, appConfig)
  .catch(err => console.error(err));
  • 関数型プロバイダーを使用します
export const appConfig: ApplicationConfig = {
  providers: [
    provideRouter(routes),
    provideHttpClient(),
    provideAnimations()
  ]
};
  • provideZoneChangeDetection を使用します
export const appConfig: ApplicationConfig = {
  providers: [
    provideZoneChangeDetection({ eventCoalescing: true })
  ]
};
  • NgModule から移行します
# Full migration
ng generate @angular/core:standalone

# Specific component
ng generate @angular/core:standalone --path=path/to/component
  • スタンドアロンで Router Outlet を使用します
@Component({
  standalone: true,
  imports: [RouterOutlet],
  template: `<router-outlet></router-outlet>`
})
export class AppComponent {}
  • スタンドアロンコンポーネントを遅延読み込みします
const routes: Routes = [
  {
    path: 'admin',
    loadComponent: () => import('./admin/admin.component').then(m => m.AdminComponent)
  }
];
  • 循環インポートには forwardRef を使用します
@Component({
  standalone: true,
  imports: [forwardRef(() => OtherComponent)]
})
export class MyComponent {}
  • スタンドアロンコンポーネントをエクスポートします
@Component({
  standalone: true,
  exports: [MyComponent],
  imports: [MyComponent]
})
export class FeatureComponent {}

コメント