diff --git a/aio/content/guide/deprecations.md b/aio/content/guide/deprecations.md
index f5b777daf53c..0f3847d31af4 100644
--- a/aio/content/guide/deprecations.md
+++ b/aio/content/guide/deprecations.md
@@ -117,6 +117,7 @@ v16 - v19
|:--- |:--- |:--- |:--- |
| `@angular/core` | `EnvironmentInjector.runInContext` | v16 | v18 |
| `@angular/platform-server` | [`PlatformConfig.baseUrl` and `PlatformConfig.useAbsoluteUrl` config options](api/platform-server/PlatformConfig) | v16 | v18 |
+| `@angular/platform-server` | [`platformDynamicServer`](api/platform-server/platformDynamicServer) | v16 | v18 |
| `@angular/platform-browser` | [`BrowserModule.withServerTransition`](api/platform-browser/BrowserModule#withservertransition) | v16 | v18 |
| `@angular/platform-browser` | [`makeStateKey`, `StateKey` and `TransferState`](#platform-browser), symbols were moved to `@angular/core` | v16 | v18 |
@@ -223,6 +224,9 @@ In the [API reference section](api) of this site, deprecated APIs are indicated
|:--- |:--- |:--- |:--- |
| [`ServerTransferStateModule`](api/platform-server/ServerTransferStateModule) | No replacement needed. | v14.1 | The `TransferState` class is available for injection without importing additional modules during server side rendering, when `ServerModule` is imported or `renderApplication` function is used for bootstrap. |
| [`PlatformConfig.baseUrl` and `PlatformConfig.useAbsoluteUrl` config options](api/platform-server/PlatformConfig) | none | v16 | This was previously unused. |
+| [`platformDynamicServer`](api/platform-server/platformDynamicServer) | Import `@angular/compiler` and replace the usage with `platformServer` instead. | v16 | This is done to decrease the server bundle size for AOT builds. |
+
+
### @angular/forms
diff --git a/goldens/public-api/platform-server/index.md b/goldens/public-api/platform-server/index.md
index b8367ce3762a..25d551406ef6 100644
--- a/goldens/public-api/platform-server/index.md
+++ b/goldens/public-api/platform-server/index.md
@@ -33,7 +33,7 @@ export interface PlatformConfig {
useAbsoluteUrl?: boolean;
}
-// @public
+// @public @deprecated
export const platformDynamicServer: (extraProviders?: StaticProvider[] | undefined) => PlatformRef;
// @public (undocumented)
diff --git a/packages/platform-server/BUILD.bazel b/packages/platform-server/BUILD.bazel
index f781a6840f92..46641f3efc9b 100644
--- a/packages/platform-server/BUILD.bazel
+++ b/packages/platform-server/BUILD.bazel
@@ -21,7 +21,6 @@ ng_module(
"//packages/compiler",
"//packages/core",
"//packages/platform-browser",
- "//packages/platform-browser-dynamic",
"//packages/platform-browser/animations",
"//packages/zone.js/lib:zone_d_ts",
"@npm//@types/node",
diff --git a/packages/platform-server/package.json b/packages/platform-server/package.json
index 1481142c8d73..1691891d87ba 100644
--- a/packages/platform-server/package.json
+++ b/packages/platform-server/package.json
@@ -12,8 +12,7 @@
"@angular/common": "0.0.0-PLACEHOLDER",
"@angular/compiler": "0.0.0-PLACEHOLDER",
"@angular/core": "0.0.0-PLACEHOLDER",
- "@angular/platform-browser": "0.0.0-PLACEHOLDER",
- "@angular/platform-browser-dynamic": "0.0.0-PLACEHOLDER"
+ "@angular/platform-browser": "0.0.0-PLACEHOLDER"
},
"dependencies": {
"tslib": "^2.3.0",
diff --git a/packages/platform-server/src/server.ts b/packages/platform-server/src/server.ts
index f5a10554606b..d65580f1ec64 100644
--- a/packages/platform-server/src/server.ts
+++ b/packages/platform-server/src/server.ts
@@ -10,7 +10,6 @@ import {DOCUMENT, PlatformLocation, ViewportScroller, ɵgetDOM as getDOM, ɵNull
import {HttpClientModule} from '@angular/common/http';
import {createPlatformFactory, Injector, NgModule, Optional, PLATFORM_ID, PLATFORM_INITIALIZER, platformCore, PlatformRef, Provider, StaticProvider, Testability, ɵALLOW_MULTIPLE_PLATFORMS as ALLOW_MULTIPLE_PLATFORMS, ɵsetDocument, ɵTESTABILITY as TESTABILITY} from '@angular/core';
import {BrowserModule, EVENT_MANAGER_PLUGINS} from '@angular/platform-browser';
-import {ɵplatformCoreDynamic as platformCoreDynamic} from '@angular/platform-browser-dynamic';
import {NoopAnimationsModule} from '@angular/platform-browser/animations';
import {DominoAdapter, parseDocument} from './domino_adapter';
@@ -89,7 +88,9 @@ export const platformServer: (extraProviders?: StaticProvider[]|undefined) => Pl
/**
* The server platform that supports the runtime compiler.
*
+ * @see `platformServer`
+ * @deprecated add an `import @angular/compiler` and replace the usage with `platformServer`
+ * instead.
* @publicApi
*/
-export const platformDynamicServer =
- createPlatformFactory(platformCoreDynamic, 'serverDynamic', INTERNAL_SERVER_PLATFORM_PROVIDERS);
+export const platformDynamicServer = platformServer;
diff --git a/packages/platform-server/src/utils.ts b/packages/platform-server/src/utils.ts
index bdce907adf28..12177666e57d 100644
--- a/packages/platform-server/src/utils.ts
+++ b/packages/platform-server/src/utils.ts
@@ -10,7 +10,7 @@ import {ApplicationRef, InjectionToken, PlatformRef, Provider, Renderer2, Static
import {first} from 'rxjs/operators';
import {PlatformState} from './platform_state';
-import {platformDynamicServer, platformServer} from './server';
+import {platformServer} from './server';
import {BEFORE_APP_SERIALIZED, INITIAL_CONFIG} from './tokens';
interface PlatformOptions {
@@ -25,9 +25,7 @@ interface PlatformOptions {
*/
function createServerPlatform(options: PlatformOptions): PlatformRef {
const extraProviders = options.platformProviders ?? [];
- const platformFactory =
- (typeof ngJitMode === 'undefined' || ngJitMode) ? platformDynamicServer : platformServer;
- return platformFactory([
+ return platformServer([
{provide: INITIAL_CONFIG, useValue: {document: options.document, url: options.url}},
extraProviders
]);
diff --git a/packages/platform-server/test/integration_spec.ts b/packages/platform-server/test/integration_spec.ts
index 2772f92af8fd..6b878d8998dd 100644
--- a/packages/platform-server/test/integration_spec.ts
+++ b/packages/platform-server/test/integration_spec.ts
@@ -5,6 +5,7 @@
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
+import '@angular/compiler';
import {animate, AnimationBuilder, state, style, transition, trigger} from '@angular/animations';
import {DOCUMENT, isPlatformServer, PlatformLocation, ɵgetDOM as getDOM} from '@angular/common';
@@ -14,7 +15,7 @@ import {ApplicationConfig, ApplicationRef, Component, destroyPlatform, Environme
import {InitialRenderPendingTasks} from '@angular/core/src/initial_render_pending_tasks';
import {TestBed} from '@angular/core/testing';
import {bootstrapApplication, BrowserModule, provideClientHydration, Title, withNoDomReuse, withNoHttpTransferCache} from '@angular/platform-browser';
-import {BEFORE_APP_SERIALIZED, INITIAL_CONFIG, platformDynamicServer, PlatformState, provideServerRendering, renderModule, ServerModule} from '@angular/platform-server';
+import {BEFORE_APP_SERIALIZED, INITIAL_CONFIG, platformServer, PlatformState, provideServerRendering, renderModule, ServerModule} from '@angular/platform-server';
import {provideRouter, RouterOutlet, Routes} from '@angular/router';
import {Observable} from 'rxjs';
import {first} from 'rxjs/operators';
@@ -536,7 +537,7 @@ describe('platform-server integration', () => {
it('should bootstrap', async () => {
const platform =
- platformDynamicServer([{provide: INITIAL_CONFIG, useValue: {document: '