angular-cn/packages
George Kalpakas b4b21bdff4 fix(upgrade): fix HMR for hybrid applications (#40045)
Previously, trying to apply a change via Hot Module Replacement (HMR) in
a hybrid app would result in an error. This was caused by not having the
AngularJS app destroyed and thus trying to bootstrap an AngularJS app on
the same element twice.

This commit fixes HMR for hybrid apps by ensuring the AngularJS app is
destroyed when the Angular `PlatformRef` is [destroyed][1] in the
[`module.hot.dispose()` callback][2].

NOTE:
For "ngUpgradeLite" apps (i.e. those using `downgradeModule()`), HMR
will only work if the downgraded module has been bootstrapped and there
is at least one Angular component present on the page. The is due to a
combination of two facts:
- The logic for setting up the listener that destroys the AngularJS app
  depends on the downgraded module's `NgModuleRef`, which is only
  available after the module has been bootstrapped.
- The [HMR dispose logic][3] depends on having an Angular element
  (identified by the auto-geenrated `ng-version` attribute) present in
  the DOM in order to retrieve the Angular `PlatformRef`.

[1]:
https://github.com/angular/angular-cli/blob/205ea2b638f154291993bfd9e065cd66ff20503/packages/angular_devkit/build_angular/src/webpack/plugins/hmr/hmr-accept.ts#L75
[2]:
205ea2b638/packages/angular_devkit/build_angular/src/webpack/plugins/hmr/hmr-accept.ts (L31)
[3]:
205ea2b638/packages/angular_devkit/build_angular/src/webpack/plugins/hmr/hmr-accept.ts (L116)

Fixes #39935

PR Close #40045
2020-12-10 13:40:53 -08:00
..
animations fix(animations): implement getPosition in browser animation builder (#39983) 2020-12-08 16:24:41 -08:00
bazel build: support building with TypeScript 4.1 (#39571) 2020-11-25 11:10:01 -08:00
benchpress build: support building with TypeScript 4.1 (#39571) 2020-11-25 11:10:01 -08:00
common docs(common): use table layout for Pre-defined format options (#40036) 2020-12-09 09:11:03 -08:00
compiler refactor(compiler-cli): use `ngDevMode` guard for `setClassMetadata` call (#39987) 2020-12-10 13:23:13 -08:00
compiler-cli refactor(compiler-cli): use `ngDevMode` guard for `setClassMetadata` call (#39987) 2020-12-10 13:23:13 -08:00
core refactor(compiler-cli): use `ngDevMode` guard for `setClassMetadata` call (#39987) 2020-12-10 13:23:13 -08:00
docs docs(di): fix typo in advanced di doc (#36634) 2020-05-01 09:50:28 -07:00
elements fix(elements): update the view of an `OnPush` component when inputs change (#39452) 2020-11-06 09:31:46 -08:00
examples fix(core): Allow passing AbstractType to the inject function (#37958) 2020-11-24 10:42:21 -08:00
forms perf(forms): use `ngDevMode` to tree-shake `_ngModelWarning` (#39964) 2020-12-04 16:08:02 -08:00
language-service feat(language-service): autocompletion within expression contexts (#39727) 2020-12-10 11:09:53 -08:00
localize feat(localize): support Application Resource Bundle (ARB) translation file format (#36795) 2020-11-25 10:55:40 -08:00
misc/angular-in-memory-web-api docs: update links to use HTTPS as protocol (#39718) 2020-11-20 12:52:16 -08:00
platform-browser fix(animations): implement getPosition in browser animation builder (#39983) 2020-12-08 16:24:41 -08:00
platform-browser-dynamic docs: update links to use HTTPS as protocol (#39718) 2020-11-20 12:52:16 -08:00
platform-server build: support building with TypeScript 4.1 (#39571) 2020-11-25 11:10:01 -08:00
private/testing build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
router feat(router): add `relativeTo` as an input to `routerLink` (#39720) 2020-12-10 11:21:00 -08:00
service-worker fix(service-worker): handle error with ErrorHandler (#39990) 2020-12-08 12:03:27 -08:00
upgrade fix(upgrade): fix HMR for hybrid applications (#40045) 2020-12-10 13:40:53 -08:00
zone.js fix(zone.js): patch child method that overrides an already patched method (#39850) 2020-12-02 12:52:27 -08:00
BUILD.bazel build: replace @types/trusted-types dep with minimal type defs (#39211) 2020-10-15 09:08:00 -07:00
README.md docs: add doc reference to npm package readme (#33911) 2019-11-20 14:46:23 -08:00
circular-deps-test.conf.js fix(platform-webworker): remove platform-webworker and platform-webworker-dynamic (#38846) 2020-09-30 09:13:59 -04:00
empty.ts build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
goog.d.ts build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
license-banner.txt build: bump year (#34651) 2020-01-13 07:21:43 -08:00
system.d.ts build: update license headers to reference Google LLC (#37205) 2020-05-26 14:26:58 -04:00
tsconfig-build-no-strict.json refactor(core): ensure compatibility with typescript strict flag (#30993) 2019-07-18 14:21:25 -07:00
tsconfig-build.json refactor(core): ensure compatibility with typescript strict flag (#30993) 2019-07-18 14:21:25 -07:00
tsconfig-test.json refactor: fix typescript strict flag failures in all tests (#30993) 2019-07-18 14:21:26 -07:00
tsconfig.json fix(platform-webworker): remove platform-webworker and platform-webworker-dynamic (#38846) 2020-09-30 09:13:59 -04:00
types.d.ts build: replace @types/trusted-types dep with minimal type defs (#39211) 2020-10-15 09:08:00 -07:00

README.md

Angular

The sources for this package are in the main Angular repo. Please file issues and pull requests against that repo.

Usage information and reference details can be found in Angular documentation.

License: MIT