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

升级Angular12后运行Typedoc引入node_modules文件报错如何解决?

问题原因

Angular 12 升级后,项目根目录的tsconfig.json默认会引入全局类型声明路径,Typedoc运行时会默认读取根目录TS配置,连带把node_modules/@types下的类型声明也纳入编译校验范围。你原来的执行命令只排除了测试文件,没有限制类型声明的加载范围,最终触发了@types/eslint和@types/estree的版本不兼容报错——前者依赖的ImportExpression类型在当前已安装的后者版本中不存在。

可行解决方案
  • 方案1:跳过类型校验快速生成文档
    直接修改package.json中的脚本,添加跳过错误校验参数即可,不需要修改任何依赖或配置:
    "d": "typedoc --out doc --exclude **/*.spec.ts --skipErrorChecking ./projects/fs-is/src/lib"
    
  • 方案2:限制Typedoc编译范围(推荐)
    在projects/fs-is/src/lib目录下新建专属的Typedoc配置文件tsconfig.typedoc.json,内容如下:
    {
      "extends": "../../../tsconfig.json",
      "exclude": ["node_modules", "**/*.spec.ts"],
      "compilerOptions": {
        "types": []
      }
    }
    
    再修改脚本指定该配置文件:
    "d": "typedoc --out doc --tsconfig projects/fs-is/src/lib/tsconfig.typedoc.json ./projects/fs-is/src/lib"
    
    该方案从编译层面排除了无关的全局类型加载,同时保留了业务代码的类型校验,稳定性更高。
  • 方案3:修复类型依赖兼容问题
    如果你需要保留全局类型校验逻辑,直接升级@types/estree到匹配版本即可:
    npm install @types/estree@latest --save-dev
    
    升级后的@types/estree会包含缺失的ImportExpression类型定义,报错会直接消失。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 11:06:03