Deliver web apps with confidence 🚀
Find a file
Paul Gschwendtner 11a81898be refactor(compiler-cli): remove dynamic require in ngcc to allow for bundling (#43431)
ngcc currently dynamially loads the `Transformer` code. It does this
to avoid unnecessary parsing and loading of transformer-related code
if there is nothing to process (so-called noop case). Unfortunately
this dynamic require is not recognized by ESBuild. The import needs
to be discovered as otheriwse the transformer code would not be included
in the bundled package output of the CLI.

The ngcc code needs to use an async runtime import as it would work
in ES modules. This introduces async code into to the compililation
pipeline, breaking the `ngccMain` synchronous invocation feature.

To avoid this, we just move the dynamic require/async import to
the file top-level so that we do not break synchronous processing
which the CLI relies on. This has the downside of slowing-down
the noop case a little but I believe that should be mitigated
through bundling of ngcc anyway. In the future with full-ESM
we won't be able to get around this anyway (unless we remove the
sync variant of ngcc processing).

PR Close #43431
2021-10-01 18:28:43 +00:00
.circleci build: update build scripts to no longer build View Engine output (#43431) 2021-10-01 18:28:42 +00:00
.devcontainer build: upgrade to node 14 (#41544) 2021-04-14 09:40:17 -07:00
.github refactor(bazel): move ng_module.bzl file into sub-directory for consistent structure (#43431) 2021-10-01 18:28:42 +00:00
.husky build: remove unnecessary husky gitignore file (#42870) 2021-07-19 17:31:55 -07:00
.ng-dev build: update bazel setup to latest dev-infra package and rules_nodejs v4.2.0 (#43431) 2021-10-01 18:28:41 +00:00
.vscode docs: fix typos in .vscode/README.md (#43621) 2021-09-28 14:28:14 -07:00
.yarn build: update to yarn v1.22.10 (#40562) 2021-01-26 10:52:27 -08:00
aio build: update all non-major dependencies (#43411) 2021-10-01 12:27:25 -04:00
docs build(docs-infra): add sealed markers to classes in API pages (#42807) 2021-08-17 09:23:09 -07:00
goldens test: update all api goldens to match with new NPM package output (#43431) 2021-10-01 18:28:43 +00:00
integration refactor: remove entry_point attribute from ng_package targets (#43431) 2021-10-01 18:28:42 +00:00
modules docs: refactor example apps to use dynamic imports for loadChildren (#43591) 2021-09-29 14:45:17 -07:00
packages refactor(compiler-cli): remove dynamic require in ngcc to allow for bundling (#43431) 2021-10-01 18:28:43 +00:00
scripts build: update build scripts to no longer build View Engine output (#43431) 2021-10-01 18:28:42 +00:00
third_party build: rename shims_for_IE.js -> shims_for_internal_tests.js (#43002) 2021-08-02 10:38:42 -07:00
tools test: update size goldens to reflect new ES2020 terser v5 output (#43431) 2021-10-01 18:28:42 +00:00
.bazelignore test: delete integration test for language service plugin (#41740) 2021-04-23 11:00:40 -07:00
.bazelrc build: remove dev-infra directory and migrate to relying on @angular/dev-infra-private-builds (#43061) 2021-08-16 10:44:27 -07:00
.bazelversion build: remove outdated note when updating bazel version (#42760) 2021-07-09 14:50:14 -07:00
.clang-format feat(tooling): Add a .clang-format for automated JavaScript formatting. 2015-04-02 08:44:34 -07:00
.editorconfig build: use https link to editorconfig.org in .editorconfig (#27664) 2018-12-18 09:30:09 -08:00
.gitattributes build: remove ts-api-guardian from repository (#42735) 2021-07-26 12:02:14 -07:00
.gitignore build: Turn tsec checks into bazel tests. (#43108) 2021-09-13 14:45:57 -07:00
.gitmessage build: remove dev-infra directory and migrate to relying on @angular/dev-infra-private-builds (#43061) 2021-08-16 10:44:27 -07:00
.mailmap build: add a Git .mailmap with my new name (#19550) 2017-10-09 14:35:30 -07:00
.npmrc build: rely on engines to prevent using npm for dependency install (#41477) 2021-04-07 12:05:01 -07:00
.nvmrc build: upgrade to node 14 (#41544) 2021-04-14 09:40:17 -07:00
.prettierrc ci: use prettier to format yml files (#42136) 2021-05-19 11:20:20 -07:00
.pullapprove.yml ci: add devversion to codeowners for bazel (#43431) 2021-10-01 18:28:43 +00:00
.yarnrc build: update to yarn v1.22.10 (#40562) 2021-01-26 10:52:27 -08:00
browser-providers.conf.js ci: remove IE11 from the list of browsers used during CI (#43002) 2021-08-02 10:38:42 -07:00
BUILD.bazel build: rename shims_for_IE.js -> shims_for_internal_tests.js (#43002) 2021-08-02 10:38:42 -07:00
CHANGELOG.md release: cut the v13.0.0-next.9 release (#43656) 2021-09-30 13:23:26 -07:00
CODE_OF_CONDUCT.md docs: add Discord as an official communication channel (#39149) 2020-10-14 10:23:15 -07:00
CONTRIBUTING.md docs: update commit message guidelines to reflect current requirements (#43650) 2021-10-01 08:55:01 -07:00
gulpfile.js build: convert CLDR locale extraction from Gulp to Bazel tool (#42230) 2021-07-16 12:44:59 -07:00
karma-js.conf.js build: rename shims_for_IE.js -> shims_for_internal_tests.js (#43002) 2021-08-02 10:38:42 -07:00
LICENSE docs: update the copyright notice date (#40707) 2021-02-16 10:04:23 -08:00
package.json test(compiler): use v12 view engine packages for compiler AOT test (#43431) 2021-10-01 18:28:43 +00:00
README.md docs: update tagline (#41922) 2021-05-03 10:04:05 -07:00
renovate.json ci: configure renovate to manage GitHub workflow updates (#43146) 2021-08-16 11:37:20 -07:00
test-events.js build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
test-main.js build: remove unnecessary polyfills from tests (#42567) 2021-06-14 14:14:41 -07:00
tsconfig-tslint.json build: remove dev-infra directory and migrate to relying on @angular/dev-infra-private-builds (#43061) 2021-08-16 10:44:27 -07:00
tslint.json build: remove dev-infra directory and migrate to relying on @angular/dev-infra-private-builds (#43061) 2021-08-16 10:44:27 -07:00
WORKSPACE build: install @bazel/esbuild used for ESM bundling of tools (#43431) 2021-10-01 18:28:41 +00:00
yarn.lock test(compiler): use v12 view engine packages for compiler AOT test (#43431) 2021-10-01 18:28:43 +00:00
yarn.lock.readme.md build: remove travisci leftovers (#27979) 2019-01-09 10:41:16 -08:00

Angular - The modern web developer's platform.

angular-logo
Angular is a development platform for building mobile and desktop web applications
using Typescript/JavaScript and other languages.

www.angular.io

Contributing Guidelines · Submit an Issue · Blog

CI status   Angular on npm   Discord conversation


Documentation

Get started with Angular, learn the fundamentals and explore advanced topics on our documentation website.

Advanced

Development Setup

Prerequisites

Setting Up a Project

Install the Angular CLI globally:

npm install -g @angular/cli

Create workspace:

ng new [PROJECT NAME]

Run the application:

cd [PROJECT NAME]
ng serve

Angular is cross-platform, fast, scalable, has incredible tooling, and is loved by millions.

Quickstart

Get started in 5 minutes.

Ecosystem

angular ecosystem logos

Changelog

Learn about the latest improvements.

Upgrading

Check out our upgrade guide to find out the best way to upgrade your project.

Contributing

Contributing Guidelines

Read through our contributing guidelines to learn about our submission process, coding rules and more.

Want to Help?

Want to file a bug, contribute some code, or improve documentation? Excellent! Read up on our guidelines for contributing and then check out one of our issues labeled as help wanted or good first issue.

Code of Conduct

Help us keep Angular open and inclusive. Please read and follow our Code of Conduct.

Community

Join the conversation and help the community.

Love Angular badge

Love Angular? Give our repo a star ⬆️.