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

Vue3升级后tsconfig失效:node_modules下TypeScript编译报错

问题:Vue3升级后TypeScript编译错误(node_modules/@vue文件被意外编译)

问题详情

Vue从2升级到3后,出现了不符合预期的TypeScript编译错误——node_modules/@vue目录下的ts文件被触发编译,但我的tsconfig中已经设置skipLibCheck: true,且在exclude字段添加了node_modules及其多种通配符变体。

项目包含三个tsconfig文件:1个位于根目录,另外2个在不同子目录中,各自有独立配置。因项目规模过大无法提供复现示例,想确认该问题是纯TypeScript问题还是与Vue相关。

我的期望是项目能正常构建,因为这些node_modules下的ts文件本不应被编译。

已尝试的无效操作

  • 修改tsconfig中node_modules的多种配置写法
  • 在tsconfig的exclude中添加报错文件的完整路径
  • 卸载并重新安装最新版TypeScript
  • 将compilerOptions.target设置为ES6和ESNext
  • 删除node_modules并重新安装所有依赖
  • 设置compileOnSave为false

三个tsconfig配置

根目录tsconfig

{  
  "compilerOptions": {    
    "target": "es5",    
    "inlineSourceMap": true,    
    "skipLibCheck": true,    
    "types": [      
      "node",      
      "jquery"    
    ]  
  },  
  "exclude": [    
    "ClientApp/**/*",    
    "ClientApp/**/*.js",    
    "ClientApp/**/*.vue",    
    "ClientAppPublic/**/*",    
    "ClientAppPublic/**/*.js",    
    "ClientAppPublic/**/*.vue",    
    "Scripts/Kendo/**",    
    "Scripts/ckeditor/**",    
    "Scripts/core-js/**",    
    "Scripts/moment/**",    
    "Scripts/jquery-*",    
    "Scripts/jquery.*.js",    
    "Scripts/knockout-*",    
    "Scripts/typings/**",    
    "**/publish.ts",    
    "node_modules",    
    "./node_modules",    
    "./node_modules/*",    
    "./node_modules/**",    
    "./node_modules/@types/node/index.d.ts",    
    "./XULRunner21_0/**",    
    "./XULRunner38_0/**"  
  ]
}

子目录tsconfig 2

{  
  "compileOnSave": false,  
  "compilerOptions": {    
    "allowJs": true,    
    "allowSyntheticDefaultImports": true,    
    "maxNodeModuleJsDepth": 2,    
    "module": "ESNext",    
    "moduleResolution": "Node",    
    "noEmit": true,    
    "target": "ESNext",    
    "skipLibCheck": true,    
    "baseUrl": ".",    
    "lib": [      
      "ESNext",      
      "DOM",      
      "DOM.Iterable",      
      "ScriptHost",            
      "WebWorker.ImportScripts"    
    ],    
    "paths": {      
      "@/*": [ "./*" ],      
      "modules": [ "../node_modules/*" ],      
      "vue_components/*": [ "./components/*" ],      
      "vue_views/*": [ "./views/*" ],      
      "directives/*": [ "./directives/*" ],      
      "images/*": [ "../Content/documatix/Images/*" ],      
      "legacyutil/*": [ "../App_Scripts/*" ],      
      "scss/*": [ "../Content/documatix/*" ]    
    },    
    "removeComments": true,    
    "sourceMap": true,    
    "typeRoots": [      
      "../node_modules/@types",      
      "../node_modules/vuetify/types"    
    ],    
    "types": [      
      "node",      
      "jquery",      
      "vuetify"    
    ]  
  },  
  "exclude": [    
    "node_modules"  
  ]
}

子目录tsconfig 3

{  
  "compileOnSave": false,  
  "compilerOptions": {    
    "allowJs": true,    
    "allowSyntheticDefaultImports": true,    
    "maxNodeModuleJsDepth": 2,    
    "module": "ESNext",    
    "moduleResolution": "Node",    
    "noEmit": true,    
    "target": "ESNext",    
    "skipLibCheck": true,    
    "baseUrl": ".",    
    "lib": [      
      "ESNext",      
      "DOM",      
      "DOM.Iterable",      
      "ScriptHost",            
      "WebWorker.ImportScripts"    
    ],    
    "paths": {      
      "@/*": [ "./*" ],      
      "modules": [ "../node_modules/*" ],      
      "vue_components/*": [ "./components/*" ],      
      "vue_views/*": [ "./views/*" ],      
      "directives/*": [ "./directives/*" ],      
      "images/*": [ "../Content/documatix/Images/*" ],      
      "legacyutil/*": [ "../App_Scripts/*" ],      
      "scss/*": [ "../Content/documatix/*" ]    
    },    
    "removeComments": true,    
    "sourceMap": true,    
    "typeRoots": [      
      "../node_modules/@types",      
      "../node_modules/vuetify/types"    
    ],    
    "types": [      
      "node",      
      "jquery",      
      "vuetify"    
    ]  
  },  
  "exclude": [    
    "node_modules"  
  ]
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 23:28:19