fix(router): add error message when using loadComponent with an NgModule#49164
fix(router): add error message when using loadComponent with an NgModule#49164IvanNavarroCode wants to merge 2 commits intoangular:mainfrom
Conversation
Add a more specific error message when defining a lazy-loaded route using `loadComponent` and passing it a NgModule instead of a standalone component, when the user should actually be using `loadChildren`.
packages/router/src/utils/config.ts
Outdated
|
|
||
| export function assertStandalone(fullPath: string, component: Type<unknown>|undefined) { | ||
| if (component && !isStandalone(component)) { | ||
| if (component && (component as any)[NG_MOD_DEF]) { |
There was a problem hiding this comment.
Hmm, I think it would probably be worth exporting isNgModule from the private exports at this point. https://github.com/angular/angular/blob/main/packages/core/src/render3/jit/util.ts#L18
There was a problem hiding this comment.
I saw it but indeed it is private. Should I add it to the exports of core in this PR?
There was a problem hiding this comment.
NG_MOD_DEF is exported from https://github.com/angular/angular/blob/main/packages/core/src/core_render3_private_export.ts. You can add isNgModule as another private export there.
|
This PR was merged into the repository by commit 7e35a91. |
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [@angular/animations](https://github.com/angular/angular) | dependencies | patch | [`15.2.0` -> `15.2.4`](https://renovatebot.com/diffs/npm/@angular%2fanimations/15.2.0/15.2.4) | | [@angular/common](https://github.com/angular/angular) | dependencies | patch | [`15.2.0` -> `15.2.4`](https://renovatebot.com/diffs/npm/@angular%2fcommon/15.2.0/15.2.4) | | [@angular/compiler](https://github.com/angular/angular) | dependencies | patch | [`15.2.0` -> `15.2.4`](https://renovatebot.com/diffs/npm/@angular%2fcompiler/15.2.0/15.2.4) | | [@angular/compiler-cli](https://github.com/angular/angular/tree/main/packages/compiler-cli) ([source](https://github.com/angular/angular)) | devDependencies | patch | [`15.2.0` -> `15.2.4`](https://renovatebot.com/diffs/npm/@angular%2fcompiler-cli/15.2.0/15.2.4) | | [@angular/core](https://github.com/angular/angular) | dependencies | patch | [`15.2.0` -> `15.2.4`](https://renovatebot.com/diffs/npm/@angular%2fcore/15.2.0/15.2.4) | | [@angular/forms](https://github.com/angular/angular) | dependencies | patch | [`15.2.0` -> `15.2.4`](https://renovatebot.com/diffs/npm/@angular%2fforms/15.2.0/15.2.4) | | [@angular/platform-browser](https://github.com/angular/angular) | dependencies | patch | [`15.2.0` -> `15.2.4`](https://renovatebot.com/diffs/npm/@angular%2fplatform-browser/15.2.0/15.2.4) | | [@angular/platform-browser-dynamic](https://github.com/angular/angular) | dependencies | patch | [`15.2.0` -> `15.2.4`](https://renovatebot.com/diffs/npm/@angular%2fplatform-browser-dynamic/15.2.0/15.2.4) | | [zone.js](https://github.com/angular/angular) ([changelog](https://github.com/angular/angular/blob/master/packages/zone.js/CHANGELOG.md)) | dependencies | minor | [`0.12.0` -> `0.13.0`](https://renovatebot.com/diffs/npm/zone.js/0.12.0/0.13.0) | --- ### Release Notes <details> <summary>angular/angular (@​angular/animations)</summary> ### [`v15.2.4`](https://github.com/angular/angular/blob/HEAD/CHANGELOG.md#​1524-2023-03-22) [Compare Source](angular/angular@15.2.3...15.2.4) ##### core | Commit | Type | Description | | -- | -- | -- | | [bae6b5ceb1](angular/angular@bae6b5c) | fix | Allow `TestBed.configureTestingModule` to work with recursive cycle of standalone components. ([#​49473](angular/angular#49473)) | | [087f4412af](angular/angular@087f441) | fix | more accurate matching of classes during content projection ([#​48888](angular/angular#48888)) | #### Special Thanks Aditya Srinivasan, Alex Rickabaugh, Andrew Scott, Kristiyan Kostadinov, Masaoki Kobayashi, Matthieu Riegler, Paul Gschwendtner, Peter Götz, Thomas Pischke, Virginia Dooley and avmaxim <!-- CHANGELOG SPLIT MARKER --> ### [`v15.2.3`](https://github.com/angular/angular/blob/HEAD/CHANGELOG.md#​1523-2023-03-16) [Compare Source](angular/angular@15.2.2...15.2.3) #### Special Thanks Alan Agius, Esteban Gehring, Matthieu Riegler and Virginia Dooley <!-- CHANGELOG SPLIT MARKER --> ### [`v15.2.2`](https://github.com/angular/angular/blob/HEAD/CHANGELOG.md#​1522-2023-03-08) [Compare Source](angular/angular@15.2.1...15.2.2) ##### migrations | Commit | Type | Description | | -- | -- | -- | | [6207d6f1f0](angular/angular@6207d6f) | fix | add protractor support if protractor imports are detected ([#​49274](angular/angular#49274)) | #### Special Thanks Alan Agius, Andrew Kushnir, Andrew Scott, Kristiyan Kostadinov, Matthieu Riegler, Paul Gschwendtner, Sai Kartheek Bommisetty and Vinit Neogi <!-- CHANGELOG SPLIT MARKER --> ### [`v15.2.1`](https://github.com/angular/angular/blob/HEAD/CHANGELOG.md#​1521-2023-03-01) [Compare Source](angular/angular@15.2.0...15.2.1) ##### common | Commit | Type | Description | | -- | -- | -- | | [f0e926074d](angular/angular@f0e9260) | fix | make Location.normalize() return the correct path when the base path contains characters that interfere with regex syntax. ([#​49181](angular/angular#49181)) | ##### compiler-cli | Commit | Type | Description | | -- | -- | -- | | [04d8b6c61a](angular/angular@04d8b6c) | fix | do not persist component analysis if template/styles are missing ([#​49184](angular/angular#49184)) | ##### core | Commit | Type | Description | | -- | -- | -- | | [d60ea6ab5a](angular/angular@d60ea6a) | fix | update zone.js peerDependencies ranges ([#​49244](angular/angular#49244)) | ##### migrations | Commit | Type | Description | | -- | -- | -- | | [44d095a61c](angular/angular@44d095a) | fix | avoid migrating the same class multiple times in standalone migration ([#​49245](angular/angular#49245)) | | [92b0bda9e4](angular/angular@92b0bda) | fix | delete barrel exports in standalone migration ([#​49176](angular/angular#49176)) | ##### router | Commit | Type | Description | | -- | -- | -- | | [3062442728](angular/angular@3062442) | fix | add error message when using loadComponent with a NgModule ([#​49164](angular/angular#49164)) | #### Special Thanks Alan Agius, Andrew Kushnir, Aristeidis Bampakos, Craig Spence, Doug Parker, Iván Navarro, Joey Perrott, Kristiyan Kostadinov, Matthieu Riegler, Michael Ziluck, Paul Gschwendtner, Stephanie Tuerk, Vincent and Virginia Dooley <!-- CHANGELOG SPLIT MARKER --> </details> <details> <summary>angular/angular (zone.js)</summary> ### [`v0.13.0`](angular/angular@zone.js-0.12.0...zone.js-0.13.0) [Compare Source](angular/angular@zone.js-0.12.0...zone.js-0.13.0) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC4xNTQuMSIsInVwZGF0ZWRJblZlciI6IjM1LjI0LjUifQ==--> Co-authored-by: cabr2-bot <cabr2.help@gmail.com> Reviewed-on: https://codeberg.org/Calciumdibromid/CaBr2/pulls/1801 Reviewed-by: Epsilon_02 <epsilon_02@noreply.codeberg.org> Co-authored-by: Calciumdibromid Bot <cabr2_bot@noreply.codeberg.org> Co-committed-by: Calciumdibromid Bot <cabr2_bot@noreply.codeberg.org>
|
This issue has been automatically locked due to inactivity. Read more about our automatic conversation locking policy. This action has been performed automatically by a bot. |

Add a more specific error message when defining a lazy-loaded route using
loadComponentand passing it anNgModuleinstead of a standalone component, when the user should actually be usingloadChildren.PR Checklist
Please check if your PR fulfills the following requirements:
PR Type
What kind of change does this PR introduce?
What is the current behavior?
Issue Number: #48945
What is the new behavior?
Users are prompted with the error:
Invalid configuration of route 'XYZ'. You are using 'loadComponent' with a module, but it must be used with standalone components. Use 'loadChildren' instead.Does this PR introduce a breaking change?
Other information
I wasn't sure how to check if the value was a NgModule. If there's a better way please let me know.