0Pricing
Angular Academy · レッスン

ng-packagrによるビルド

Angular Package Formatの出力を生成します

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

ライブラリには専用のビルドが必要

TypeScript やテンプレートをそのまま公開することはできません。利用者はコンパイル済みの標準化された出力を必要とします。Angular ライブラリは、CLI が内部で使用するツールである ng-packagr を使って Angular Package Format (APF) にビルドします。

Angular Package Format

APF は、配布可能な Angular ライブラリの公式構成です。最適化された ES モジュール、型定義、メタデータが、どの Angular アプリからでもライブラリを確実に利用し、tree-shaking できる形で配置されます。

ライブラリのビルド

ライブラリプロジェクトを対象に ng build を実行します。CLI が ng-packagr を呼び出し、パッケージ化された出力を dist/ に書き出します。

ng build ui-kit
# outputs dist/ui-kit in Angular Package Format

ng-packagr が生成するもの

dist フォルダーには、コンパイル済みの FESM(flattened ES module)バンドル、.d.ts 型ファイル、そして module と types のエントリフィールドが正しく設定された生成済みの package.json が含まれます。

dist/ui-kit/
  fesm2022/ui-kit.mjs   # flattened ES module
  index.d.ts            # type declarations
  package.json          # generated, points to the above

ng-package.json の設定

各ライブラリには ng-package.json があり、出力先とエントリファイルを ng-packagr に指示します。CLI はビルド中にこのファイルを読み込みます。

// projects/ui-kit/ng-package.json
{
  "$schema": "../../node_modules/ng-packagr/ng-package.schema.json",
  "dest": "../../dist/ui-kit",
  "lib": { "entryFile": "src/public-api.ts" }
}

プロダクションビルド

完全な最適化を有効にするには、プロダクション設定でビルドします。公開するのはこの出力なので、必ず最適化されたバージョンをパッケージ化してください。

ng build ui-kit --configuration production

部分コンパイル

ライブラリは完全にコンパイルするのではなく、partial Ivy モードでコンパイルします。これにより Angular のバージョン間で互換性を保てます。利用側のアプリが自身のビルド中にコンパイル(リンク)を完了します。

出力における Peer Dependencies

ng-packagr は Angular やその他の peer dependency をバンドルせず、外部依存として扱います。生成される package.json にはそれらが peerDependencies として記載されるため、利用側が共有コピーを 1 つ提供します。

アセットとスタイル

スタイルや静的アセットをパッケージに含めることができます。ng-package.json で宣言すると、ng-packagr がそれらをコピーして処理し、利用者向けの dist 出力に含めます。

"assets": ["./styles/theme.css"]

ビルドの検証

ビルド後に dist/ui-kit を確認します。FESM バンドル、.d.ts ファイル、そして exports/module フィールドがビルド済みファイルを指している package.json が存在することを確認してください。これが npm に公開されるものです。

開発用の Watch モード

--watch を追加すると、編集時に自動で再ビルドできます。デモアプリと組み合わせることで、ライブラリ開発中のフィードバックループを高速化できます。

ng build ui-kit --watch

理解度チェック

Angular ライブラリはどの形式にビルドされますか?

振り返り

ng build <lib> でライブラリをビルドすると、ng-packagr が実行され、Angular Package Format(FESM バンドル、.d.ts、生成済みの package.json)が dist/ に出力されます。ng-package.json で出力を設定し、プロダクションでビルドし、バージョン間の互換性には部分コンパイルを利用し、peer dependency は外部のままにしてください。

よくある質問

「ng-packagrによるビルド」レッスンは無料ですか?

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

「ng-packagrによるビルド」で何を学びますか?

Angular Package Formatの出力を生成します ブラウザで直接実行するハンズオンコードでAngular Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

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

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

「ng-packagrによるビルド」レッスンにはどのくらい時間がかかりますか?

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

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

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

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

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