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

Node+Vue+TypeScript项目npm run serve出现无有效提示的异常错误

解决Vue/Vuetify项目构建时TypeScript栈溢出问题

问题背景

在WebStorm中开发Node/Vue/Vuetify项目,原本运行正常,安装vue-typed-mixins、vuelidate、lodash及其开发依赖后,执行npm run serve时出现栈溢出错误:

vue-cli-service serve
 INFO  Starting development server...
[24%] building (15/40 modules)
node:internal/process/promises:279
            triggerUncaughtException(err, true /* fromPromise */);
            ^
RangeError: Maximum call stack size exceeded
    at getMappedType (C:\Work\GitProjects\SWSWebPortal\mv.sws.webportal.app\node_modules\typescript\lib\typescript.js:61620:31)
    at getMappedType (C:\Work\GitProjects\SWSWebPortal\mv.sws.webportal.app\node_modules\typescript\lib\typescript.js:61637:30)
    at getMappedType (C:\Work\GitProjects\SWSWebPortal\mv.sws.webportal.app\node_modules\typescript\lib\typescript.js:61637:30)
    at C:\Work\GitProjects\SWSWebPortal\mv.sws.webportal.app\node_modules\typescript\lib\typescript.js:61768:82
    at Object.map (C:\Work\GitProjects\SWSWebPortal\mv.sws.webportal.app\node_modules\typescript\lib\typescript.js:652:29)
    at getObjectTypeInstantiation (C:\Work\GitProjects\SWSWebPortal\mv.sws.webportal.app\node_modules\typescript\lib\typescript.js:61768:40)
    at instantiateTypeWorker (C:\Work\GitProjects\SWSWebPortal\mv.sws.webportal.app\node_modules\typescript\lib\typescript.js:61999:28)
    at instantiateTypeWithAlias (C:\Work\GitProjects\SWSWebPortal\mv.sws.webportal.app\node_modules\typescript\lib\typescript.js:61979:26)
    at instantiateType (C:\Work\GitProjects\SWSWebPortal\mv.sws.webportal.app\node_modules\typescript\lib\typescript.js:61962:37)
    at instantiateList (C:\Work\GitProjects\SWSWebPortal\mv.sws.webportal.app\node_modules\typescript\lib\typescript.js:61595:34)

解决思路

  • 检查依赖版本兼容性
    重点排查vue-typed-mixins与当前TypeScript版本的适配性,这类强依赖TS类型系统的库,很容易因版本不匹配导致类型递归解析死循环。尝试降级/升级TS版本(比如将TS 4.7+降到4.6.x,或升级到最新稳定版),同时确认vuelidate版本是否兼容当前Vue和TS环境。

  • 清理缓存并重建依赖

    1. 执行npm cache clean --force清理npm缓存
    2. 删除node_modules文件夹和package-lock.json文件
    3. 重新执行npm install安装依赖
    4. 运行vue-cli-service clean清理Vue CLI构建缓存
  • 定位触发问题的代码
    错误发生在构建第15个模块时,可逐步注释新依赖相关代码:

    • 先移除vue-typed-mixins的使用,验证是否能正常构建
    • 若问题消失,检查使用该库的组件是否存在类型循环引用或错误的类型定义
    • 再依次排查vuelidate、lodash相关代码,定位具体触发文件
  • 调整TypeScript配置

    • 在tsconfig.json中临时设置skipLibCheck: true,跳过第三方库类型检查,验证是否为第三方库类型冲突导致
    • 尝试关闭strict模式(仅测试用),排查是否是严格类型检查下的递归解析问题
    • 检查tsconfig.json的typeRoots配置,确保没有重复引入类型定义
  • 优化Lodash导入方式
    避免全量导入lodash(import _ from 'lodash'),改为按需导入具体方法(比如import debounce from 'lodash/debounce'),减少类型解析复杂度。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 05:25:51