TS打包报错JavaScript heap out of memory

2024-12-20 19:10:22
56次阅读
0个评论

在对Vite项目执行npm run build命令时,出现如下错误:


FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory



通过下面这个指令来放宽内存的使用限制还是报错:


cross-env NODE_OPTIONS=--max-old-space-size=4096 vite build


原以为是 vite build 阶段发生的问题,仔细看 output log 发现是在 ts 编译阶段 vue-tsc --noEmit 发生的错误;

所以放宽内存限制的指令必须放到 vue-tsc --noEmit 前面。4096表示4G内存。


将package.json文件中的

"scripts": {
    "dev": "vite",
    "build": "vue-tsc --noEmit && vite build",
    "preview": "vite preview"
  }
修改为


"scripts": {
    "dev": "vite",
    "build": "cross-env NODE_OPTIONS=--max-old-space-size=4096 vue-tsc --noEmit && vite build",
    "preview": "vite preview"
  }



或者修改为:

"scripts": {
    "dev": "vite",
    "build": "vite build",
    "preview": "vite preview"
  }

但这样就不能提前发现类型错误

vue-tsc:Vue 官方提供的命令,用于执行 TS 的类型检查。它在执行时会根据项目中的 tsconfig.json 文件配置进行类型检查。

--noEmit:TS 编译器的选项,使用 --noEmit 选项后,编译器仅执行类型检查,而不会生成任何实际的编译输出。



可以安装 cross-env 依赖设置环境变量

npm install --save-dev cross-env
收藏00

登录 后评论。没有帐号? 注册 一个。