From 15a91d24c38c837b04b2d2dbc7045c860d23b4f3 Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Wed, 19 Mar 2025 16:50:11 +0000 Subject: [PATCH 1/2] refactor: remove dependency on `@angular/platform-browser-dynamic` This commit remove the dependency on `@angular/platform-browser-dynamic` from new projects. This is now possible due to https://github.com/angular/angular/pull/60453 --- .../projects/hello-world-app/src/main.ts | 4 ++-- package.json | 1 - packages/angular/build/BUILD.bazel | 3 --- packages/angular/build/package.json | 4 ++++ .../tests/options/app-shell_spec.ts | 4 ++-- .../builders/karma/polyfills/init_test_bed.js | 7 ++----- .../angular_devkit/build_angular/BUILD.bazel | 1 - .../angular_devkit/build_angular/package.json | 4 ++++ .../src/builders/app-shell/app-shell_spec.ts | 4 ++-- .../builders/browser/specs/rebuild_spec.ts | 4 ++-- .../builders/browser/specs/web-worker_spec.ts | 4 ++-- .../src/builders/jest/init-test-bed.mjs | 7 ++----- .../src/builders/karma/browser_builder.ts | 7 ++----- .../web-test-runner/jasmine_runner.js | 7 ++----- .../angular_devkit/build_webpack/BUILD.bazel | 1 - .../test/angular-app/src/main.ts | 4 ++-- .../workspace/files/package.json.template | 1 - pnpm-lock.yaml | 21 ------------------- .../assets/ssr-project-webpack/package.json | 1 - .../assets/ssr-project-webpack/src/main.ts | 6 ++---- .../express-engine-ngmodule.ts | 4 ++-- 21 files changed, 32 insertions(+), 67 deletions(-) diff --git a/modules/testing/builder/projects/hello-world-app/src/main.ts b/modules/testing/builder/projects/hello-world-app/src/main.ts index 0b9dfa142956..d975b48d7808 100644 --- a/modules/testing/builder/projects/hello-world-app/src/main.ts +++ b/modules/testing/builder/projects/hello-world-app/src/main.ts @@ -6,10 +6,10 @@ * found in the LICENSE file at https://angular.dev/license */ -import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; +import { platformBrowser } from '@angular/platform-browser'; import { AppModule } from './app/app.module'; -platformBrowserDynamic() +platformBrowser() .bootstrapModule(AppModule) .catch(err => console.log(err)); diff --git a/package.json b/package.json index 1e3605d3082b..ffcce40ae1fc 100644 --- a/package.json +++ b/package.json @@ -57,7 +57,6 @@ "@angular/material": "20.0.0-next.2", "@angular/ng-dev": "https://github.com/angular/dev-infra-private-ng-dev-builds.git#d25ced20c12ad010c2b5b560acb78065f8d6564e", "@angular/platform-browser": "20.0.0-next.3", - "@angular/platform-browser-dynamic": "20.0.0-next.3", "@angular/platform-server": "20.0.0-next.3", "@angular/router": "20.0.0-next.3", "@angular/service-worker": "20.0.0-next.3", diff --git a/packages/angular/build/BUILD.bazel b/packages/angular/build/BUILD.bazel index 061e096e6e58..b761262539a4 100644 --- a/packages/angular/build/BUILD.bazel +++ b/packages/angular/build/BUILD.bazel @@ -169,7 +169,6 @@ ts_project( "//:node_modules/@angular/compiler-cli", "//:node_modules/@angular/core", "//:node_modules/@angular/platform-browser", - "//:node_modules/@angular/platform-browser-dynamic", "//:node_modules/@angular/router", "//:node_modules/rxjs", "//:node_modules/tslib", @@ -202,7 +201,6 @@ ts_project( "//:node_modules/@angular/compiler-cli", "//:node_modules/@angular/core", "//:node_modules/@angular/platform-browser", - "//:node_modules/@angular/platform-browser-dynamic", "//:node_modules/@angular/router", ":node_modules/ng-packagr", "//:node_modules/rxjs", @@ -238,7 +236,6 @@ ts_project( "//:node_modules/@angular/compiler-cli", "//:node_modules/@angular/core", "//:node_modules/@angular/platform-browser", - "//:node_modules/@angular/platform-browser-dynamic", "//:node_modules/@angular/router", "//:node_modules/rxjs", "//:node_modules/tslib", diff --git a/packages/angular/build/package.json b/packages/angular/build/package.json index 793796fdb7f2..9923f5dfa1db 100644 --- a/packages/angular/build/package.json +++ b/packages/angular/build/package.json @@ -60,6 +60,7 @@ "@angular/compiler": "0.0.0-ANGULAR-FW-PEER-DEP", "@angular/compiler-cli": "0.0.0-ANGULAR-FW-PEER-DEP", "@angular/localize": "0.0.0-ANGULAR-FW-PEER-DEP", + "@angular/platform-browser": "0.0.0-ANGULAR-FW-PEER-DEP", "@angular/platform-server": "0.0.0-ANGULAR-FW-PEER-DEP", "@angular/service-worker": "0.0.0-ANGULAR-FW-PEER-DEP", "@angular/ssr": "^0.0.0-PLACEHOLDER", @@ -74,6 +75,9 @@ "@angular/localize": { "optional": true }, + "@angular/platform-browser": { + "optional": true + }, "@angular/platform-server": { "optional": true }, diff --git a/packages/angular/build/src/builders/application/tests/options/app-shell_spec.ts b/packages/angular/build/src/builders/application/tests/options/app-shell_spec.ts index a946357af48c..9c8384b29efc 100644 --- a/packages/angular/build/src/builders/application/tests/options/app-shell_spec.ts +++ b/packages/angular/build/src/builders/application/tests/options/app-shell_spec.ts @@ -69,10 +69,10 @@ const appShellRouteFiles: Record = { export class AppServerModule {} `, 'src/main.ts': ` - import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; + import { platformBrowser } from '@angular/platform-browser'; import { AppModule } from './app/app.module'; - platformBrowserDynamic().bootstrapModule(AppModule).catch(err => console.log(err)); + platformBrowser().bootstrapModule(AppModule).catch(err => console.log(err)); `, 'src/app/app-routing.module.ts': ` import { NgModule } from '@angular/core'; diff --git a/packages/angular/build/src/builders/karma/polyfills/init_test_bed.js b/packages/angular/build/src/builders/karma/polyfills/init_test_bed.js index 0857396195c8..fdbb476808c3 100644 --- a/packages/angular/build/src/builders/karma/polyfills/init_test_bed.js +++ b/packages/angular/build/src/builders/karma/polyfills/init_test_bed.js @@ -7,13 +7,10 @@ */ import { getTestBed } from '@angular/core/testing'; -import { - BrowserDynamicTestingModule, - platformBrowserDynamicTesting, -} from '@angular/platform-browser-dynamic/testing'; +import { BrowserTestingModule, platformBrowserTesting } from '@angular/platform-browser/testing'; // Initialize the Angular testing environment. -getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { +getTestBed().initTestEnvironment(BrowserTestingModule, platformBrowserTesting(), { errorOnUnknownElements: true, errorOnUnknownProperties: true, }); diff --git a/packages/angular_devkit/build_angular/BUILD.bazel b/packages/angular_devkit/build_angular/BUILD.bazel index 8b1783f04c47..3886b35d85bc 100644 --- a/packages/angular_devkit/build_angular/BUILD.bazel +++ b/packages/angular_devkit/build_angular/BUILD.bazel @@ -402,7 +402,6 @@ LARGE_SPECS = { "//:node_modules/@angular/compiler-cli", "//:node_modules/@angular/core", "//:node_modules/@angular/platform-browser", - "//:node_modules/@angular/platform-browser-dynamic", "//:node_modules/@angular/router", "//:node_modules/rxjs", "//:node_modules/tslib", diff --git a/packages/angular_devkit/build_angular/package.json b/packages/angular_devkit/build_angular/package.json index 44915bc5604a..9bdb8271606b 100644 --- a/packages/angular_devkit/build_angular/package.json +++ b/packages/angular_devkit/build_angular/package.json @@ -75,6 +75,7 @@ "peerDependencies": { "@angular/compiler-cli": "0.0.0-ANGULAR-FW-PEER-DEP", "@angular/localize": "0.0.0-ANGULAR-FW-PEER-DEP", + "@angular/platform-browser": "0.0.0-ANGULAR-FW-PEER-DEP", "@angular/platform-server": "0.0.0-ANGULAR-FW-PEER-DEP", "@angular/service-worker": "0.0.0-ANGULAR-FW-PEER-DEP", "@angular/ssr": "^0.0.0-PLACEHOLDER", @@ -92,6 +93,9 @@ "@angular/localize": { "optional": true }, + "@angular/platform-browser": { + "optional": true + }, "@angular/platform-server": { "optional": true }, diff --git a/packages/angular_devkit/build_angular/src/builders/app-shell/app-shell_spec.ts b/packages/angular_devkit/build_angular/src/builders/app-shell/app-shell_spec.ts index afabdb3094ac..468bdb6ff2bd 100644 --- a/packages/angular_devkit/build_angular/src/builders/app-shell/app-shell_spec.ts +++ b/packages/angular_devkit/build_angular/src/builders/app-shell/app-shell_spec.ts @@ -91,11 +91,11 @@ describe('AppShell Builder', () => { export class AppServerModule {} `, 'src/main.ts': ` - import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; + import { platformBrowser } from '@angular/platform-browser'; import { AppModule } from './app/app.module'; document.addEventListener('DOMContentLoaded', () => { - platformBrowserDynamic().bootstrapModule(AppModule) + platformBrowser().bootstrapModule(AppModule) .catch(err => console.log(err)); }); `, diff --git a/packages/angular_devkit/build_angular/src/builders/browser/specs/rebuild_spec.ts b/packages/angular_devkit/build_angular/src/builders/browser/specs/rebuild_spec.ts index 9a89c4d5a04c..fbceb61d270d 100644 --- a/packages/angular_devkit/build_angular/src/builders/browser/specs/rebuild_spec.ts +++ b/packages/angular_devkit/build_angular/src/builders/browser/specs/rebuild_spec.ts @@ -55,10 +55,10 @@ describe('Browser Builder rebuilds', () => { export let X = '$$_E2E_GOLDEN_VALUE_2'; `, 'src/main.ts': ` - import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; + import { platformBrowser } from '@angular/platform-browser'; import { AppModule } from './app/app.module'; - platformBrowserDynamic().bootstrapModule(AppModule); + platformBrowser().bootstrapModule(AppModule); import * as m from './app/app.module'; console.log(m.X); diff --git a/packages/angular_devkit/build_angular/src/builders/browser/specs/web-worker_spec.ts b/packages/angular_devkit/build_angular/src/builders/browser/specs/web-worker_spec.ts index 9e23602d78fc..a9d7d0c38f71 100644 --- a/packages/angular_devkit/build_angular/src/builders/browser/specs/web-worker_spec.ts +++ b/packages/angular_devkit/build_angular/src/builders/browser/specs/web-worker_spec.ts @@ -36,9 +36,9 @@ describe('Browser Builder Web Worker support', () => { }); `, 'src/main.ts': ` - import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; + import { platformBrowser } from '@angular/platform-browser'; import { AppModule } from './app/app.module'; - platformBrowserDynamic().bootstrapModule(AppModule).catch(err => console.error(err)); + platformBrowser().bootstrapModule(AppModule).catch(err => console.error(err)); const worker = new Worker(new URL('./app/app.worker', import.meta.url), { type: 'module' }); worker.onmessage = ({ data }) => { diff --git a/packages/angular_devkit/build_angular/src/builders/jest/init-test-bed.mjs b/packages/angular_devkit/build_angular/src/builders/jest/init-test-bed.mjs index 4c229bcbc117..d8e8bb909194 100644 --- a/packages/angular_devkit/build_angular/src/builders/jest/init-test-bed.mjs +++ b/packages/angular_devkit/build_angular/src/builders/jest/init-test-bed.mjs @@ -10,12 +10,9 @@ // `@angular-devkit/build-angular` rather than the user's workspace. Should look into virtual modules to support those use cases. import { getTestBed } from '@angular/core/testing'; -import { - BrowserDynamicTestingModule, - platformBrowserDynamicTesting, -} from '@angular/platform-browser-dynamic/testing'; +import { BrowserTestingModule, platformBrowserTesting } from '@angular/platform-browser/testing'; -getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { +getTestBed().initTestEnvironment(BrowserTestingModule, platformBrowserTesting(), { errorOnUnknownElements: true, errorOnUnknownProperties: true, }); diff --git a/packages/angular_devkit/build_angular/src/builders/karma/browser_builder.ts b/packages/angular_devkit/build_angular/src/builders/karma/browser_builder.ts index da6995ba223d..7ae7689402fb 100644 --- a/packages/angular_devkit/build_angular/src/builders/karma/browser_builder.ts +++ b/packages/angular_devkit/build_angular/src/builders/karma/browser_builder.ts @@ -153,13 +153,10 @@ function getBuiltInMainFile(): string { const content = Buffer.from( ` import { getTestBed } from '@angular/core/testing'; - import { - BrowserDynamicTestingModule, - platformBrowserDynamicTesting, - } from '@angular/platform-browser-dynamic/testing'; + import { BrowserTestingModule, platformBrowserTesting } from '@angular/platform-browser/testing'; // Initialize the Angular testing environment. - getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { + getTestBed().initTestEnvironment(BrowserTestingModule, platformBrowserTesting(), { errorOnUnknownElements: true, errorOnUnknownProperties: true }); diff --git a/packages/angular_devkit/build_angular/src/builders/web-test-runner/jasmine_runner.js b/packages/angular_devkit/build_angular/src/builders/web-test-runner/jasmine_runner.js index 994697c7ac1d..035959a7844e 100644 --- a/packages/angular_devkit/build_angular/src/builders/web-test-runner/jasmine_runner.js +++ b/packages/angular_devkit/build_angular/src/builders/web-test-runner/jasmine_runner.js @@ -7,10 +7,7 @@ */ import { getTestBed } from '@angular/core/testing'; -import { - BrowserDynamicTestingModule, - platformBrowserDynamicTesting, -} from '@angular/platform-browser-dynamic/testing'; +import { BrowserTestingModule, platformBrowserTesting } from '@angular/platform-browser/testing'; import { getConfig, sessionFailed, @@ -67,7 +64,7 @@ export async function runJasmineTests(jasmineEnv) { jasmine.DEFAULT_TIMEOUT_INTERVAL = config.defaultTimeoutInterval; // Initialize `TestBed` automatically for users. This assumes we already evaluated `zone.js/testing`. - getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { + getTestBed().initTestEnvironment(BrowserTestingModule, platformBrowserTesting(), { errorOnUnknownElements: true, errorOnUnknownProperties: true, }); diff --git a/packages/angular_devkit/build_webpack/BUILD.bazel b/packages/angular_devkit/build_webpack/BUILD.bazel index f8f7be349938..6b190d5a4386 100644 --- a/packages/angular_devkit/build_webpack/BUILD.bazel +++ b/packages/angular_devkit/build_webpack/BUILD.bazel @@ -87,7 +87,6 @@ jasmine_test( "//:node_modules/@angular/compiler-cli", "//:node_modules/@angular/core", "//:node_modules/@angular/platform-browser", - "//:node_modules/@angular/platform-browser-dynamic", "//:node_modules/tslib", "//:node_modules/typescript", "//:node_modules/zone.js", diff --git a/packages/angular_devkit/build_webpack/test/angular-app/src/main.ts b/packages/angular_devkit/build_webpack/test/angular-app/src/main.ts index 99e8f91dd030..9fff4140458d 100644 --- a/packages/angular_devkit/build_webpack/test/angular-app/src/main.ts +++ b/packages/angular_devkit/build_webpack/test/angular-app/src/main.ts @@ -6,9 +6,9 @@ * found in the LICENSE file at https://angular.dev/license */ -import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; +import { platformBrowser } from '@angular/platform-browser'; import { AppModule } from './app/app.module'; -platformBrowserDynamic() +platformBrowser() .bootstrapModule(AppModule) .catch((err) => console.log(err)); diff --git a/packages/schematics/angular/workspace/files/package.json.template b/packages/schematics/angular/workspace/files/package.json.template index 51468a39dd08..4ee0cdd9ab73 100644 --- a/packages/schematics/angular/workspace/files/package.json.template +++ b/packages/schematics/angular/workspace/files/package.json.template @@ -15,7 +15,6 @@ "@angular/core": "<%= latestVersions.Angular %>", "@angular/forms": "<%= latestVersions.Angular %>", "@angular/platform-browser": "<%= latestVersions.Angular %>", - "@angular/platform-browser-dynamic": "<%= latestVersions.Angular %>", "@angular/router": "<%= latestVersions.Angular %>", "rxjs": "<%= latestVersions['rxjs'] %>", "tslib": "<%= latestVersions['tslib'] %>", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ee57ab9920e9..30adba826f1c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -47,9 +47,6 @@ importers: '@angular/platform-browser': specifier: 20.0.0-next.3 version: 20.0.0-next.3(@angular/animations@20.0.0-next.3(@angular/core@20.0.0-next.3(@angular/compiler@20.0.0-next.3)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0-next.3(@angular/core@20.0.0-next.3(@angular/compiler@20.0.0-next.3)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-next.3(@angular/compiler@20.0.0-next.3)(rxjs@7.8.2)(zone.js@0.15.0)) - '@angular/platform-browser-dynamic': - specifier: 20.0.0-next.3 - version: 20.0.0-next.3(@angular/common@20.0.0-next.3(@angular/core@20.0.0-next.3(@angular/compiler@20.0.0-next.3)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@20.0.0-next.3)(@angular/core@20.0.0-next.3(@angular/compiler@20.0.0-next.3)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0-next.3(@angular/animations@20.0.0-next.3(@angular/core@20.0.0-next.3(@angular/compiler@20.0.0-next.3)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0-next.3(@angular/core@20.0.0-next.3(@angular/compiler@20.0.0-next.3)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-next.3(@angular/compiler@20.0.0-next.3)(rxjs@7.8.2)(zone.js@0.15.0))) '@angular/platform-server': specifier: 20.0.0-next.3 version: 20.0.0-next.3(@angular/common@20.0.0-next.3(@angular/core@20.0.0-next.3(@angular/compiler@20.0.0-next.3)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@20.0.0-next.3)(@angular/core@20.0.0-next.3(@angular/compiler@20.0.0-next.3)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0-next.3(@angular/animations@20.0.0-next.3(@angular/core@20.0.0-next.3(@angular/compiler@20.0.0-next.3)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0-next.3(@angular/core@20.0.0-next.3(@angular/compiler@20.0.0-next.3)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-next.3(@angular/compiler@20.0.0-next.3)(rxjs@7.8.2)(zone.js@0.15.0)))(rxjs@7.8.2) @@ -970,15 +967,6 @@ packages: version: 0.0.0-27078026111b01a7202449e9788ce38f2b2e103f hasBin: true - '@angular/platform-browser-dynamic@20.0.0-next.3': - resolution: {integrity: sha512-i1UbOtTXFEurf/qX4zRuTPyrn+M35JZQZjn9PMyzVgDtpcZlEBpvcSL8ctogDxYXkYd6/rEByPyFdTvH8YN+Ug==} - engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} - peerDependencies: - '@angular/common': 20.0.0-next.3 - '@angular/compiler': 20.0.0-next.3 - '@angular/core': 20.0.0-next.3 - '@angular/platform-browser': 20.0.0-next.3 - '@angular/platform-browser@20.0.0-next.3': resolution: {integrity: sha512-rtBwaE0suHAHn5KpFIP6LKGRCIqCg9qPjQQrpgR4Yguke0peNFdY7j6k0oga+vd8xjxrRZftjXcC6cpK5itQGw==} engines: {node: ^18.19.1 || ^20.11.1 || >=22.0.0} @@ -6551,7 +6539,6 @@ packages: engines: {node: '>=0.6.0', teleport: '>=0.2.0'} deprecated: |- You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other. - (For a CapTP with native promises, see @endo/eventual-send and @endo/captp) qjobs@1.2.0: @@ -8039,14 +8026,6 @@ snapshots: transitivePeerDependencies: - encoding - '@angular/platform-browser-dynamic@20.0.0-next.3(@angular/common@20.0.0-next.3(@angular/core@20.0.0-next.3(@angular/compiler@20.0.0-next.3)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/compiler@20.0.0-next.3)(@angular/core@20.0.0-next.3(@angular/compiler@20.0.0-next.3)(rxjs@7.8.2)(zone.js@0.15.0))(@angular/platform-browser@20.0.0-next.3(@angular/animations@20.0.0-next.3(@angular/core@20.0.0-next.3(@angular/compiler@20.0.0-next.3)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0-next.3(@angular/core@20.0.0-next.3(@angular/compiler@20.0.0-next.3)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-next.3(@angular/compiler@20.0.0-next.3)(rxjs@7.8.2)(zone.js@0.15.0)))': - dependencies: - '@angular/common': 20.0.0-next.3(@angular/core@20.0.0-next.3(@angular/compiler@20.0.0-next.3)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) - '@angular/compiler': 20.0.0-next.3 - '@angular/core': 20.0.0-next.3(@angular/compiler@20.0.0-next.3)(rxjs@7.8.2)(zone.js@0.15.0) - '@angular/platform-browser': 20.0.0-next.3(@angular/animations@20.0.0-next.3(@angular/core@20.0.0-next.3(@angular/compiler@20.0.0-next.3)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0-next.3(@angular/core@20.0.0-next.3(@angular/compiler@20.0.0-next.3)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-next.3(@angular/compiler@20.0.0-next.3)(rxjs@7.8.2)(zone.js@0.15.0)) - tslib: 2.8.1 - '@angular/platform-browser@20.0.0-next.3(@angular/animations@20.0.0-next.3(@angular/core@20.0.0-next.3(@angular/compiler@20.0.0-next.3)(rxjs@7.8.2)(zone.js@0.15.0)))(@angular/common@20.0.0-next.3(@angular/core@20.0.0-next.3(@angular/compiler@20.0.0-next.3)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2))(@angular/core@20.0.0-next.3(@angular/compiler@20.0.0-next.3)(rxjs@7.8.2)(zone.js@0.15.0))': dependencies: '@angular/common': 20.0.0-next.3(@angular/core@20.0.0-next.3(@angular/compiler@20.0.0-next.3)(rxjs@7.8.2)(zone.js@0.15.0))(rxjs@7.8.2) diff --git a/tests/legacy-cli/e2e/assets/ssr-project-webpack/package.json b/tests/legacy-cli/e2e/assets/ssr-project-webpack/package.json index c8588a03cc54..ad0518bc97bd 100644 --- a/tests/legacy-cli/e2e/assets/ssr-project-webpack/package.json +++ b/tests/legacy-cli/e2e/assets/ssr-project-webpack/package.json @@ -20,7 +20,6 @@ "@angular/core": "^20.0.0-next.0", "@angular/forms": "^20.0.0-next.0", "@angular/platform-browser": "^20.0.0-next.0", - "@angular/platform-browser-dynamic": "^20.0.0-next.0", "@angular/platform-server": "^20.0.0-next.0", "@angular/router": "^20.0.0-next.0", "@angular/ssr": "^20.0.0-next.0", diff --git a/tests/legacy-cli/e2e/assets/ssr-project-webpack/src/main.ts b/tests/legacy-cli/e2e/assets/ssr-project-webpack/src/main.ts index c58dc05cbc6d..f3a8a045a0a7 100644 --- a/tests/legacy-cli/e2e/assets/ssr-project-webpack/src/main.ts +++ b/tests/legacy-cli/e2e/assets/ssr-project-webpack/src/main.ts @@ -1,7 +1,5 @@ -import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; - +import { platformBrowser } from '@angular/platform-browser'; import { AppModule } from './app/app.module'; - -platformBrowserDynamic().bootstrapModule(AppModule) +platformBrowser().bootstrapModule(AppModule) .catch(err => console.error(err)); diff --git a/tests/legacy-cli/e2e/tests/build/server-rendering/express-engine-ngmodule.ts b/tests/legacy-cli/e2e/tests/build/server-rendering/express-engine-ngmodule.ts index 8654c01bf79a..8313496d2046 100644 --- a/tests/legacy-cli/e2e/tests/build/server-rendering/express-engine-ngmodule.ts +++ b/tests/legacy-cli/e2e/tests/build/server-rendering/express-engine-ngmodule.ts @@ -69,11 +69,11 @@ export default async function () { 'projects/test-project-two/src/app/app.css': `div { color: #000 }`, 'projects/test-project-two/src/styles.css': `* { color: #000 }`, 'projects/test-project-two/src/main.ts': ` - import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; + import { platformBrowser } from '@angular/platform-browser'; import { AppModule } from './app/app.module'; (window as any)['doBootstrap'] = () => { - platformBrowserDynamic() + platformBrowser() .bootstrapModule(AppModule) .catch((err) => console.error(err)); }; From e5e51a22abe4c5c421ff984542fcc808b440b0fa Mon Sep 17 00:00:00 2001 From: Alan Agius <17563226+alan-agius4@users.noreply.github.com> Date: Thu, 20 Mar 2025 07:52:14 +0000 Subject: [PATCH 2/2] refactor: use `platformBrowser` instead of `platformBrowserTesting` `platformBrowserTesting` currently does not include the right providers. See: https://github.com/angular/angular/pull/60480 --- .../build/src/builders/karma/polyfills/init_test_bed.js | 6 ++++-- .../build_angular/src/builders/jest/init-test-bed.mjs | 6 ++++-- .../build_angular/src/builders/karma/browser_builder.ts | 4 +++- .../src/builders/web-test-runner/jasmine_runner.js | 6 ++++-- 4 files changed, 15 insertions(+), 7 deletions(-) diff --git a/packages/angular/build/src/builders/karma/polyfills/init_test_bed.js b/packages/angular/build/src/builders/karma/polyfills/init_test_bed.js index fdbb476808c3..3f041d03dafa 100644 --- a/packages/angular/build/src/builders/karma/polyfills/init_test_bed.js +++ b/packages/angular/build/src/builders/karma/polyfills/init_test_bed.js @@ -7,10 +7,12 @@ */ import { getTestBed } from '@angular/core/testing'; -import { BrowserTestingModule, platformBrowserTesting } from '@angular/platform-browser/testing'; +import { platformBrowser } from '@angular/platform-browser'; +import { BrowserTestingModule } from '@angular/platform-browser/testing'; +// TODO(alanagius): replace with `platformBrowserTesting` once https://github.com/angular/angular/pull/60480 is released. // Initialize the Angular testing environment. -getTestBed().initTestEnvironment(BrowserTestingModule, platformBrowserTesting(), { +getTestBed().initTestEnvironment(BrowserTestingModule, platformBrowser(), { errorOnUnknownElements: true, errorOnUnknownProperties: true, }); diff --git a/packages/angular_devkit/build_angular/src/builders/jest/init-test-bed.mjs b/packages/angular_devkit/build_angular/src/builders/jest/init-test-bed.mjs index d8e8bb909194..7ab17c1b2f85 100644 --- a/packages/angular_devkit/build_angular/src/builders/jest/init-test-bed.mjs +++ b/packages/angular_devkit/build_angular/src/builders/jest/init-test-bed.mjs @@ -10,9 +10,11 @@ // `@angular-devkit/build-angular` rather than the user's workspace. Should look into virtual modules to support those use cases. import { getTestBed } from '@angular/core/testing'; -import { BrowserTestingModule, platformBrowserTesting } from '@angular/platform-browser/testing'; +import { platformBrowser } from '@angular/platform-browser'; +import { BrowserTestingModule } from '@angular/platform-browser/testing'; -getTestBed().initTestEnvironment(BrowserTestingModule, platformBrowserTesting(), { +// TODO(alanagius): replace with `platformBrowserTesting` once https://github.com/angular/angular/pull/60480 is released. +getTestBed().initTestEnvironment(BrowserTestingModule, platformBrowser(), { errorOnUnknownElements: true, errorOnUnknownProperties: true, }); diff --git a/packages/angular_devkit/build_angular/src/builders/karma/browser_builder.ts b/packages/angular_devkit/build_angular/src/builders/karma/browser_builder.ts index 7ae7689402fb..092b88d2de26 100644 --- a/packages/angular_devkit/build_angular/src/builders/karma/browser_builder.ts +++ b/packages/angular_devkit/build_angular/src/builders/karma/browser_builder.ts @@ -153,10 +153,12 @@ function getBuiltInMainFile(): string { const content = Buffer.from( ` import { getTestBed } from '@angular/core/testing'; + import { platformBrowser } from '@angular/platform-browser'; import { BrowserTestingModule, platformBrowserTesting } from '@angular/platform-browser/testing'; + // TODO(alanagius): replace with \`platformBrowserTesting\` once https://github.com/angular/angular/pull/60480 is released. // Initialize the Angular testing environment. - getTestBed().initTestEnvironment(BrowserTestingModule, platformBrowserTesting(), { + getTestBed().initTestEnvironment(BrowserTestingModule, platformBrowser(), { errorOnUnknownElements: true, errorOnUnknownProperties: true }); diff --git a/packages/angular_devkit/build_angular/src/builders/web-test-runner/jasmine_runner.js b/packages/angular_devkit/build_angular/src/builders/web-test-runner/jasmine_runner.js index 035959a7844e..fa78031bb97d 100644 --- a/packages/angular_devkit/build_angular/src/builders/web-test-runner/jasmine_runner.js +++ b/packages/angular_devkit/build_angular/src/builders/web-test-runner/jasmine_runner.js @@ -7,7 +7,8 @@ */ import { getTestBed } from '@angular/core/testing'; -import { BrowserTestingModule, platformBrowserTesting } from '@angular/platform-browser/testing'; +import { platformBrowser } from '@angular/platform-browser'; +import { BrowserTestingModule } from '@angular/platform-browser/testing'; import { getConfig, sessionFailed, @@ -64,7 +65,8 @@ export async function runJasmineTests(jasmineEnv) { jasmine.DEFAULT_TIMEOUT_INTERVAL = config.defaultTimeoutInterval; // Initialize `TestBed` automatically for users. This assumes we already evaluated `zone.js/testing`. - getTestBed().initTestEnvironment(BrowserTestingModule, platformBrowserTesting(), { + // TODO(alanagius): replace with `platformBrowserTesting` once https://github.com/angular/angular/pull/60480 is released. + getTestBed().initTestEnvironment(BrowserTestingModule, platformBrowser(), { errorOnUnknownElements: true, errorOnUnknownProperties: true, });