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

tsconfig.json中**/node_modules/*配置的作用是什么?

为什么tsconfig.json的exclude需要同时配置两条node_modules相关规则

两个规则的匹配范围完全不同,作用是覆盖所有场景下的依赖目录排除需求:

  • 规则 "node_modules" 仅匹配项目根目录下一级的node_modules文件夹,只能排除根目录的依赖代码,对嵌套在子目录里的node_modules无效
  • 规则 "**/node_modules/*" 是跨层级通配规则:
    • 其中**表示匹配任意深度的子目录
    • 整体作用是排除项目所有层级子目录中嵌套的node_modules文件夹

日常开发中出现嵌套node_modules的场景非常常见:

  • 采用monorepo架构的项目,每个子业务包/工具包目录下都会存在独立的node_modules
  • 本地调试公共依赖包时,会将其他带node_modules的项目放到当前项目的子目录下
  • 部分第三方脚手架、构建工具会在工作目录下生成带有node_modules的缓存目录

如果不添加第二条规则,这些嵌套的依赖代码依然会被TypeScript编译器、VS Code的JS/TS语法检查扫描到,不仅会大幅拖慢代码检查、类型计算的速度,还大概率会出现类型定义冲突、冗余报错提示的异常问题。

另外补充:TypeScript默认的exclude规则已经包含了根目录node_modules,官方建议显式配置两条规则,是为了适配自定义rootDir、特殊目录结构等非常规场景,避免出现漏排除的情况。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 04:06:02