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