angular/integration/cli-hello-world-lazy
Andrew Scott 75df404467 feat(router): Create APIs for using Router without RouterModule (#47010)
This commit creates and exposes the APIs required to use the Angular Router without importing `RouterModule`.

The newly added APIs are tree-shakable and you can add features using special functions rather than using `ExtraOptions` to control the providers via an internal switch in Router code.

```
const appRoutes: Routes = [];
bootstrapApplication(AppComponent,
  {
    providers: [
      provideRouter(appRoutes,
        withDebugTracing(),     // enables debug tracing feature
        withInMemoryScrolling() // enables scrolling feature
    ]
  }
);
```

This "features" pattern allows for router behavior to evolve in a backwards compatible and tree-shakable way in the future. This approach also makes features more discoverable.

The newly added APIs can be used in any application today (doesn't require an application to be bootstrapped using standalone-based APIs).

Note: APIs added in this commit are released in the "Developer Preview" mode, read more about this mode in Angular docs: https://angular.io/guide/releases#developer-preview

PR Close #47010
2022-08-15 15:58:00 -07:00
..
e2e test: switch integration tests from puppeteer/webdriver-manager to Bazel-managed chromium (#44238) 2021-12-08 13:42:42 -05:00
src feat(router): Create APIs for using Router without RouterModule (#47010) 2022-08-15 15:58:00 -07:00
.browserslistrc test: update browserslist configuration to replace Angular CLI projects (#43417) 2021-09-24 10:49:39 -07:00
.editorconfig test: add integration test for lazy chunks and ngDevMode in cli apps (#32957) 2019-10-21 11:27:43 -04:00
.gitignore docs: update links to use HTTPS as protocol (#39718) 2020-11-20 12:52:16 -08:00
angular.json test: remove defaultProject workspace option (#45410) 2022-03-24 10:49:57 -07:00
BUILD.bazel build: fix integration test size trackings not running after recent refactoring (#44430) 2021-12-10 16:31:04 -05:00
check-output-for-ngdevmode.js test: add integration test for lazy chunks and ngDevMode in cli apps (#32957) 2019-10-21 11:27:43 -04:00
karma.conf.js test: switch integration tests from puppeteer/webdriver-manager to Bazel-managed chromium (#44238) 2021-12-08 13:42:42 -05:00
package.json test: replace --prod with --configuration production (#46548) 2022-06-28 09:39:05 -07:00
README.md ci: migrate payload size tracking goldens to the golden directory (#36455) 2020-04-24 09:05:11 -07:00
tsconfig.app.json test: add integration test for lazy chunks and ngDevMode in cli apps (#32957) 2019-10-21 11:27:43 -04:00
tsconfig.json test: add integration test for lazy chunks and ngDevMode in cli apps (#32957) 2019-10-21 11:27:43 -04:00
tsconfig.spec.json test: add integration test for lazy chunks and ngDevMode in cli apps (#32957) 2019-10-21 11:27:43 -04:00
tslint.json test: add integration test for lazy chunks and ngDevMode in cli apps (#32957) 2019-10-21 11:27:43 -04:00
yarn.lock test: switch integration tests from puppeteer/webdriver-manager to Bazel-managed chromium (#44238) 2021-12-08 13:42:42 -05:00

CliHelloWorldLazy

This test checks bundle sizes when there is a lazy module. It also checks if the ngDevMode global variable and string references in packages/core/src/util/ng_dev_mode.ts are correctly removed.

This test contains a lazy route to ensure ngDevMode removal happens even across chunks, and a payload size check in /goldens/size-tracking/integration-payloads.json to ensure extra code is not retained accidentally.