解决 macOS (M1 Pro) 上使用 Vite 进行 Build 打包时 Node 进程内存溢出的问题

解决 macOS (M1 Pro) 上使用 Vite 进行 Build 打包时 Node 进程内存溢出的问题

在搭载 M1 Pro 芯片的 macOS 系统上,使用 Vite 进行项目构建(build)时,您可能会遇到 Node 进程内存溢出的错误。特别是在使用较新版本的 Node.js(如 Node 20)时,这个问题更为常见。

错误信息:
复制代码
FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory

该错误表明当前 Node.js 进程尝试分配的内存量超出了其默认限制,这通常发生在处理大型项目或执行需要大量内存的操作时。

解决方案:

为了临时增加 Node.js 进程的最大旧空间大小(max-old-space-size),可以通过设置 NODE_OPTIONS 环境变量来实现。以下是如何操作的具体步骤:

  1. 临时解决方案

    在开始构建之前,通过命令行设置环境变量:

    sh 复制代码
    export NODE_OPTIONS="--max-old-space-size=8192"

    此命令将 Node.js 的最大旧空间大小增加到 8GB。完成上述设置后,运行您的构建命令:

    sh 复制代码
    yarn build

    使用这种方法,您可以临时增加 Node.js 进程可用的内存。请注意,当关闭当前终端会话时,此设置将自动失效。

  2. 永久解决方案

    如果希望永久更改此设置,可以在您的 shell 配置文件中添加相应的环境变量。对于使用 Bash 的用户,请编辑 ~/.bashrc 文件,并加入如下行:

    sh 复制代码
    export NODE_OPTIONS="--max-old-space-size=8192"

    对于使用 Zsh 的用户,则需要编辑 ~/.zshrc 文件并添加相同的行。保存文件后,请记得重新加载配置文件或重启终端以使更改生效。

通过调整 Node.js 进程的内存限制,您可以有效解决由于内存不足导致的构建失败问题,确保项目的顺利构建和部署。

相关推荐
肖永威11 小时前
macOS环境安装/卸载python实践笔记
笔记·python·macos
雨中风华16 小时前
Linux, macOS系统实现远程目录访问(等同于windows平台xFsRedir软件的目录重定向)
linux·windows·macos
天下代码客18 小时前
使用electronc框架调用dll动态链接库流程和避坑
前端·javascript·vue.js·electron·node.js
weixin1997010801619 小时前
【性能提升300%】仿1688首页的Webpack优化全记录
前端·webpack·node.js
有趣的杰克21 小时前
开源|macOS 菜单栏 AI 启动器 GroAsk:⌥Space 一键直达 ChatGPT / Claude / Gemini
人工智能·macos·chatgpt
疯狂敲代码的老刘21 小时前
JDK 1.6到25 全版本网盘合集 (Windows + Mac + Linux)
java·linux·windows·macos·jdk
不倒翁玩偶21 小时前
npm : 无法将“npm”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。
前端·npm·node.js
一心赚狗粮的宇叔1 天前
03.Node.js依赖包补充说明及React&Node.Js项目
前端·react.js·node.js
jxy99981 天前
mac mini 安装java JDK 17
java·开发语言·macos
-嘟囔着拯救世界-1 天前
【2026 最新版】OpenAI 祭出王炸 GPT-5.3-Codex!Win11 + VSCode 部署保姆级教程
vscode·gpt·chatgpt·node.js·node·codex·gpt5