# Angular Package Format This document describes the Angular Package Format (APF). APF is an Angular specific specification for the structure and format of npm packages that is used by all first-party Angular packages (`@angular/core`, `@angular/material`, etc.) and most third-party Angular libraries. APF enables a package to work seamlessly under most common scenarios that use Angular. Packages that use APF are compatible with the tooling offered by the Angular team as well as wider JavaScript ecosystem. It is recommended that third-party library developers follow the same npm package format.
README.md | Package README, used by npmjs web UI |
package.json |
Primary package.json, describing the package itself as well as all available entrypoints and code formats. This file contains the "exports" mapping used by runtimes and tools to perform module resolution. |
core.d.ts |
Bundled .d.ts for the primary entrypoint (@angular/core) |
esm2020/ core.mjs index.mjs public_api.mjs |
Tree of @angular/core's sources in unflattened ES2020 format. |
esm2020/testing/ |
Tree of the @angular/core/testing entrypoint in unflattened ES2020 format. |
fesm2015/ core.mjs core.mjs.map testing.mjs testing.mjs.map |
Code for all entrypoints in a flattened (FESM) ES2015 format, along with sourcemaps. |
fesm2020/ core.mjs core.mjs.map testing.mjs testing.mjs.map |
Code for all entrypoints in flattened (FESM) ES2020 format, along with sourcemaps. |
testing/ |
Directory representing the "testing" entrypoint. |
testing/package.json |
Defines the @angular/core/testing entrypoint with its typings for TypeScript, which does not support the top level "exports" based module resolution. |
testing/testing.d.ts |
Actual .d.ts for the @angular/core/testing entrypoint |