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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 08:52:41