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

如何解决Angular项目ng s启动时的TypeError: Cannot read 'lookup'问题

问题描述

克隆新Angular项目后,npm install执行成功,但运行ng s启动应用时出现以下错误,怀疑是否与Node.js版本有关:

\node_modules\express\lib\response.js:789
        var charset = mime.charsets.lookup(value.split(';')[0]);
                                    ^

TypeError: Cannot read properties of undefined (reading 'lookup')
    at ServerResponse.header (C:\Users\N121075\class-ui\node_modules\express\lib\response.js:789:37)
    at setHeaderForResponse (C:\Users\N121075\class-ui\node_modules\webpack-dev-server\node_modules\webpack-dev-middleware\dist\utils\compatibleAPI.js:94:9)
    at processRequest (C:\Users\N121075\class-ui\node_modules\webpack-dev-server\node_modules\webpack-dev-middleware\dist\middleware.js:142:11)
    at ready (C:\Users\N121075\class-ui\node_modules\webpack-dev-server\node_modules\webpack-dev-middleware\dist\utils\ready.js:17:5)
    at middleware (C:\Users\N121075\class-ui\node_modules\webpack-dev-server\node_modules\webpack-dev-middleware\dist\middleware.js:69:5)
    at Layer.handle [as handle_request] (C:\Users\N121075\class-ui\node_modules\express\lib\router\layer.js:95:5)
    at trim_prefix (C:\Users\N121075\class-ui\node_modules\express\lib\router\index.js:328:13)
    at C:\Users\N121075\class-ui\node_modules\express\lib\router\index.js:286:9
    at Function.process_params (C:\Users\N121075\class-ui\node_modules\express\lib\router\index.js:346:12)
    at next (C:\Users\N121075\class-ui\node_modules\express\lib\router\index.js:280:10)
    at Server.setHeaders (C:\Users\N121075\class-ui\node_modules\webpack-dev-server\lib\Server.js:2944:5)
    at Layer.handle [as handle_request] (C:\Users\N121075\class-ui\node_modules\express\lib\router\layer.js:95:5)
    at trim_prefix (C:\Users\N121075\class-ui\node_modules\express\lib\router\index.js:328:13)
    at C:\Users\N121075\class-ui\node_modules\express\lib\router\index.js:286:9
    at param (C:\Users\N121075\class-ui\node_modules\express\lib\router\index.js:365:14)
    at param (C:\Users\N121075\class-ui\node_modules\express\lib\router\index.js:376:14)
    at Function.process_params (C:\Users\N121075\class-ui\node_modules\express\lib\router\index.js:421:3)
    at next (C:\Users\N121075\class-ui\node_modules\express\lib\router\index.js:280:10)
    at next (C:\Users\N121075\class-ui\node_modules\express\lib\router\route.js:136:14)
    at next (C:\Users\N121075\class-ui\node_modules\express\lib\router\route.js:140:7)
    at next (C:\Users\N121075\class-ui\node_modules\express\lib\router\route.js:140:7)
    at next (C:\Users\N121075\class-ui\node_modules\express\lib\router\route.js:140:7)
    at next (C:\Users\N121075\class-ui\node_modules\express\lib\router\route.js:140:7)
    at next (C:\Users\N121075\class-ui\node_modules\express\lib\router\route.js:140:7)
    at next (C:\Users\N121075\class-ui\node_modules\express\lib\router\route.js:140:7)
    at next (C:\Users\N121075\class-ui\node_modules\express\lib\router\route.js:140:7)
    at next (C:\Users\N121075\class-ui\node_modules\express\lib\router\route.js:140:7)
    at next (C:\Users\N121075\class-ui\node_modules\express\lib\router\route.js:140:7)
    at next (C:\Users\N121075\class-ui\node_modules\express\lib\router\route.js:140:7)
    at next (C:\Users\N121075\class-ui\node_modules\express\lib\router\route.js:140:7)
    at next (C:\Users\N121075\class-ui\node_modules\express\lib\router\route.js:140:7)
    at next (C:\Users\N121075\class-ui\node_modules\express\lib\router\route.js:140:7)
    at next (C:\Users\N121075\class-ui\node_modules\express\lib\router\route.js:140:7)
    at next (C:\Users\N121075\class-ui\node_modules\express\lib\router\route.js:140:7)
    at next (C:\Users\N121075\class-ui\node_modules\express\lib\router\route.js:140:7)
    at next (C:\Users\N121075\class-ui\node_modules\express\lib\router\route.js:140:7)
    at next (C:\Users\N121075\class-ui\node_modules\express\lib\router\route.js:140:7)
    at next (C:\Users\N121075\class-ui\node_modules\express\lib\router\route.js:140:7)
    at next (C:\Users\N121075\class-ui\node_modules\express\lib\router\route.js:140:7)
    at next (C:\Users\N121075\class-ui\node_modules\express\lib\router\route.js:140:7)
    at next (C:\Users\N121075\class-ui\node_modules\express\lib\router\route.js:140:7)
    at next (C:\Users\N121075\class-ui\node_modules\express\lib\router\route.js:140:7)
    at next (C:\Users\N121075\class-ui\node_modules\express\lib\router\route.js:140:7)
    at next (C:\Users\N121075\class-ui\node_modules\express\lib\router\route.js:140:7)
    at next (C:\Users\N121075\class-ui\node_modules\express\lib\router\route.js:140:7)
    at next (C:\Users\N121075\class-ui\node_modules\express\lib\router\route.js:140:7)
    at C:\Users\N121075\class-ui\node_modules\webpack-dev-server\lib\Server.js:1948:18
    at Layer.handle [as handle_request] (C:\Users\N121075\class-ui\node_modules\express\lib\router\layer.js:95:5)
    at next (C:\Users\N121075\class-ui\node_modules\express\lib\router\route.js:144:13)
    at next (C:\Users\N121075\class-ui\node_modules\express\lib\router\route.js:140:7)

Node.js v18.14.0

已安装版本信息:

  • Angular CLI: 15.2.9
  • Node: 18.14.0
  • Package Manager: npm 9.3.1
  • OS: win32 x64
问题分析与解决方案

这个错误不是Node.js版本导致的,Angular 15官方支持Node.js 14.20+、16.13+、18.10+,你的18.14.0完全符合要求。

错误根源是依赖版本冲突:旧版express依赖mime包的charsets.lookup方法,但mime v2.x及以上版本移除了这个API,项目中安装的mime版本过高,导致调用失败。

解决方法如下:

方法1:降级mime到兼容版本

执行命令强制安装兼容的mime v1.x版本:

npm install mime@1.6.0 --save-dev

方法2:使用npm overrides锁定mime版本

在项目根目录的package.json中添加overrides字段,强制所有依赖使用指定的mime版本:

{
  "overrides": {
    "mime": "1.6.0"
  }
}

添加后重新执行npm install,再启动项目。

方法3:升级相关依赖(可选)

如果项目允许,可以尝试升级webpack-dev-server或express到兼容mime v2+的版本,但因为这些是Angular CLI的间接依赖,可能需要同步升级Angular CLI版本到更稳定的小版本(比如15.2.x的最新版),执行:

npm install @angular/cli@15.2.11 --save-dev

然后重新安装依赖并启动项目。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 16:25:56