当前位置: 首页 > news >正文

解决 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. 临时解决方案
    在开始构建之前,通过命令行设置环境变量:

    export NODE_OPTIONS="--max-old-space-size=8192"
    

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

    yarn build
    

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

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

    export NODE_OPTIONS="--max-old-space-size=8192"
    

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

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

相关文章:

  • 复现GitHub上`https://github.com/tobiasfshr/map4d`这个项目
  • Android学习总结之ContentProvider跨应用数据共享
  • 无需docker三步安装deepseek可视化操作软件-Open-WebUI
  • RabbitMQ消息相关
  • #C8# UVM中的factory机制 #S8.5# 对factory机制的重载进一步思考(二)
  • Hyperlane:Rust Web开发的未来,释放极致性能与简洁之美
  • 2025-3-29算法打卡
  • epoll 和ractor模型学习
  • Docker 的实质作用是什么
  • Blender多摄像机怎么指定相机渲染图像
  • 《数据结构:单链表》
  • 最常使用的现代C++新特性介绍
  • 复古半色调褶皱照片效果ps特效滤镜样机 Halftone Crumpled Paper Effect
  • 通过本地部署 DeepSeek 来协助感光材料研发(配方设计和有机合成等方面)的一般步骤和思路
  • docker(2) -- 启动后修改目录和网络
  • CUDA Kernel中的Load/Store指令对L1/L2缓存的影响
  • K8S学习之基础六十二:helm部署memcached服务
  • 如何使用 CSS 的backdrop - filter属性实现背景模糊等特效,有哪些兼容性问题?
  • C#测试调用LM Studio服务接口
  • Netty——启动流程
  • 五一假期上海推出首批16条“市民健康路线”,这些健康提示请收好
  • A股三大股指小幅低收:电力股大幅调整,两市成交10221亿元
  • 打工人的“小长假模式”,已经迫不及待地开启了
  • 劳动最光荣!2426人受到表彰
  • 全过程人民民主研究基地揭牌,为推动我国民主政治建设贡献上海智慧
  • 可实时追踪血液中单个细胞的穿戴医疗设备问世