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フィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- ng generateによるライブラリ作成
- パブリックAPIとエントリーポイント
- ng-packagrによるビルド
- npmへの公開