0Pricing
Angular Academy · レッスン

ng generateによるライブラリ作成

ライブラリプロジェクトのひな形を作成します

「ng generateによるライブラリ作成」はCoddyKit上の無料Angular Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAngular Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Angular Academyコースには全4レッスンが含まれています。

ライブラリを作成する理由

複数のアプリで同じコンポーネント、サービス、ユーティリティが必要な場合は、それらを Angular ライブラリとしてパッケージ化します。ライブラリは再利用、バージョン管理、公開が可能で、プロジェクト間でコードをコピー&ペーストする必要がありません。

ワークスペースでライブラリを管理する

ライブラリは Angular の ワークスペース内に配置されます。ワークスペースとは、1 つの angular.json で管理され、複数のアプリやライブラリを含められるフォルダーです。既存のワークスペースにライブラリを追加することも、専用のワークスペースを作成することもできます。

ng new my-workspace --create-application=false
# a workspace with no app, ready to hold libraries

ライブラリの生成

ng generate library(エイリアスは ng g lib)を使うと、projects/ 配下に新しいライブラリプロジェクトのひな形が作成されます。

ng generate library ui-kit
# creates projects/ui-kit with a sample component, module, and public-api.ts

作成されるもの

ライブラリには、専用の src/lib フォルダー、public-api.ts バレル、ビルド用の ng-package.json、そして angular.json のエントリが用意されます。自己完結したビルド可能なプロジェクトです。

projects/ui-kit/
  src/
    lib/        # your components & services
    public-api.ts
  ng-package.json
  package.json

ライブラリへのコンポーネント追加

--project で対象のライブラリを指定すると、ライブラリ内にコードを生成できます。CLI が適切なフォルダーにファイルを配置します。

ng generate component button --project=ui-kit
ng generate service theme --project=ui-kit

ライブラリでのスタンドアロンコンポーネント

現在のライブラリでは、スタンドアロンコンポーネントが推奨されています。利用側は NgModule なしで直接インポートできます。コンポーネントに standalone: true を指定すると、アプリから簡単なインポートで使用できます。

@Component({
  selector: 'lib-button',
  standalone: true,
  template: '<button class="lib-btn"><ng-content></ng-content></button>',
})
export class ButtonComponent {}

ライブラリの package.json

各ライブラリには独自の package.json があり、名前、バージョン、@angular/core などの peer dependencies を定義します。Peer dependency にすると Angular は利用側のアプリから提供されるため、重複したコピーを避けられます。

{
  "name": "ui-kit",
  "version": "0.0.1",
  "peerDependencies": { "@angular/core": "^18.0.0" }
}

ローカルアプリに対して開発する

ライブラリの開発中に動作を確認できるよう、同じワークスペースにデモアプリを用意しておきます。ライブラリ名でインポートすると、tsconfig の TypeScript パスマッピングによってローカルのソースが解決されます。

ライブラリとアプリケーションの違い

アプリケーションはデプロイするためのもので、ライブラリは利用されるためのものです。ライブラリを直接サーブすることはできません。配布可能なパッケージにビルドし、公開するか、ワークスペース内のアプリからインポートします。

ライブラリの責務を明確にする

優れたライブラリには、UI キットやデータアクセス層など、明確な目的があります。無関係なコードを一緒に詰め込むのは避けてください。凝集度の高いライブラリほど、バージョン管理、ドキュメント作成、再利用が容易になります。

次のステップ

ライブラリのひな形ができたら、残る作業は public API の定義、Angular Package Format へのビルド、そして公開です。次のレッスンでは、それぞれについて学びます。

理解度チェック

ライブラリはどのように作成しますか?

振り返り

ライブラリは、複数のアプリで再利用するコードをパッケージ化したものです。ワークスペース内で ng generate library を実行して作成すると、src/lib、public-api.ts、ng-package.json、および peer dependencies を含む package.json が生成されます。--project でコードを追加し、スタンドアロンコンポーネントを優先し、各ライブラリの責務を明確にしてください。

よくある質問

「ng generateによるライブラリ作成」レッスンは無料ですか?

はい。「ng generateによるライブラリ作成」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Angular Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Angular Academyコースには全4レッスンが含まれています。

「ng generateによるライブラリ作成」で何を学びますか?

ライブラリプロジェクトのひな形を作成します ブラウザで直接実行するハンズオンコードでAngular Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Angular Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのAngular Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。

「ng generateによるライブラリ作成」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このAngular Academyレッスンでコードを書いて実行できますか?

はい。すべてのAngular Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. ng generateによるライブラリ作成
  2. パブリックAPIとエントリーポイント
  3. ng-packagrによるビルド
  4. npmへの公開
← Angular Academyに戻る