Angular Universal执行npm run dev:ssr时遭遇node_modules模块问题
解决Angular 11 + Universal运行
npm run dev:ssr时express-serve-static-core相关问题 步骤1:核对依赖版本兼容性
Angular 11需要搭配对应版本的Angular Universal及Express依赖,避免版本不匹配导致的类型冲突:
- 确保
package.json中Universal相关依赖锁定为11.x版本:"@nguniversal/express-engine": "^11.2.1", "@nguniversal/builders": "^11.2.1" - 锁定Express及类型包版本为兼容的4.17.x系列:
"express": "^4.17.1", "@types/express": "^4.17.13"
步骤2:清理并重装依赖
依赖缓存或不完整安装可能引发类型错误,执行以下操作:
- 删除现有依赖及锁定文件:
rm -rf node_modules package-lock.json - 重新安装依赖:
npm install
步骤3:调整TypeScript配置
通过TS配置跳过库类型检查或补充必要类型:
- 在
tsconfig.server.json的compilerOptions中添加node类型:"compilerOptions": { "types": ["node"] } - 在根目录
tsconfig.json中开启跳过库类型检查,规避第三方类型定义冲突:"compilerOptions": { "skipLibCheck": true }
步骤4:修正server.ts中的类型写法
如果server.ts存在Express相关类型报错,调整导入及使用方式:
- 确保正确导入Express类型:
import * as express from 'express'; - 若req/res属性访问报错,使用类型断言明确类型:
const user = (req as any).user;
步骤5:确认Angular CLI配置
检查angular.json中server构建配置是否正确:
"server": { "builder": "@nguniversal/builders:ssr-dev-server", "options": { "browserTarget": "你的项目名:build", "serverTarget": "你的项目名:server" } }
内容的提问来源于stack exchange,提问作者Vijay Anandh
相关产品推荐
相关产品推荐

