You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular 19+Vite+SSR报错:ɵgetOrCreateAngularServerApp不是函数

Angular 19 SSR 错误:TypeError: ɵgetOrCreateAngularServerApp is not a function

1. 错误产生的原因

  • Angular依赖版本不匹配:@angular/core、@angular/platform-server等核心包版本不一致,导致SSR内部私有函数ɵgetOrCreateAngularServerApp在某一依赖中不存在或签名不兼容。
  • 缓存未彻底清理:仅删除node_modules和执行基础缓存清理,未清除Angular构建缓存(.angular/cache)和Vite的SSR依赖块,旧缓存代码仍在调用已废弃或不存在的函数。
  • SSR配置不兼容:手动修改server.ts、vite.config.ts等SSR相关文件后,初始化逻辑不符合Angular 19的新SSR机制,导致启动时调用错误的内部函数。

2. 解决方法

步骤1:统一Angular核心依赖版本

强制安装与项目匹配的Angular版本(以错误中的19.2.3为例),确保所有核心包版本完全一致:

# Mac/Linux
npm install @angular/core@19.2.3 @angular/platform-server@19.2.3 @angular/cli@19.2.3 --save-exact

# Windows
npm install @angular/core@19.2.3 @angular/platform-server@19.2.3 @angular/cli@19.2.3 --save-exact

步骤2:彻底清理所有缓存与构建产物

删除所有可能残留的旧文件和缓存,重新安装依赖:

# Mac/Linux
rm -rf node_modules package-lock.json .angular/cache dist
npm cache clean --force
npm install

# Windows
rd /s /q node_modules package-lock.json .angular\cache dist
npm cache clean --force
npm install

步骤3:检查并修正SSR配置文件

打开server.ts,确保SSR启动逻辑符合Angular 19规范,示例如下:

import { bootstrapApplication } from '@angular/platform-browser';
import { AppComponent } from './src/app/app.component';
import { config } from './src/app/app.config.server';
import { renderApplication } from '@angular/platform-server';

export default async function render(url: string, document: string) {
  const html = await renderApplication(AppComponent, {
    document,
    url,
    platformProviders: config.providers,
  });
  return html;
}

若项目基于NgModule,需确保@angular/platform-server的导入和platformServer的初始化逻辑正确,避免使用旧版启动方式。

步骤4:重新构建并启动SSR

执行完整的构建和启动命令,确保新代码和配置生效:

# 构建并启动开发环境SSR
ng build
ng serve --ssr

# 或使用Vite对应的SSR命令(若项目配置了)
npm run build:ssr
npm run serve:ssr

内容的提问来源于stack exchange,提问作者Kenbrnbe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 15:05:58