Angular 18升级至19时遇到导出匹配及Vite相关错误
解决Angular 18升级到19的关键问题
一、修复"Ng-19 [ERROR] No matching export in 'src/main.server.ts' for import 'default'"错误
你的main.server.ts存在循环导入和缺少默认导出的问题,修改后代码如下:
import '@angular/platform-server/init'; import { enableProdMode } from '@angular/core'; import { environment } from './environments/environment'; // 移除循环导入,直接从实际模块文件导入 import { AppServerModule } from './app/app.server.module'; if (environment.production) { enableProdMode(); } // 同时导出命名模块(保持原有兼容)和默认模块(满足Angular 19/Vite要求) export { AppServerModule }; export default AppServerModule;
二、解决后续Vite相关错误
Angular 19全面切换到Vite作为默认构建工具,需针对性调整依赖和配置:
1. 更新自定义Webpack构建器
当前@angular-builders/custom-webpack版本为18.0.0,需升级到与Angular 19兼容的版本:
npm install @angular-builders/custom-webpack@^19.0.0 --save-dev
2. 移除过时SSR依赖
@nguniversal/module-map-ngfactory-loader是Angular 8及更早版本的遗留依赖,Angular 19已不再需要,直接删除:
npm uninstall @nguniversal/module-map-ngfactory-loader
3. 替换Vite不兼容的依赖
- domino/domino-ext:Angular 19的
@angular/platform-server已内置DOM模拟能力,可移除这两个包以避免冲突。 - rxjs-compat:Angular 19使用RxJS 7.x,无需兼容RxJS 6.x,可删除该依赖。
4. 确认SSR构建配置
检查angular.json中的server构建配置是否已切换到Vite:
"server": { "builder": "@angular-devkit/build-angular:server", "options": { "outputPath": "dist/server", "main": "src/main.server.ts", "tsConfig": "src/tsconfig.server.json" } }
5. 升级第三方库版本
检查所有第三方依赖(如@angular/fire、ngx-extended-pdf-viewer等)是否已发布支持Angular 19的版本,及时升级避免兼容性问题。
内容的提问来源于stack exchange,提问作者Santosh
相关产品推荐
相关产品推荐

