npm link之后invalid array length Allocation failed - JavaScript heap out of memory

本文讲述了作者在项目中遇到的内存溢出问题,通过尝试清理、扩容、重装等方式解决,最终发现重装npm包的node_modules才是关键。记录下这个经验,以备后续类似问题出现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述:项目引入了本地的npm包,使用的是npm link链入的。但是链入之后,项目报错invalid array length Allocation failed - JavaScript heap out of memory,报错如下。
在这里插入图片描述
请教了大佬,说是给的内存太小,link有时候引入过来的比较大,导致内存不够了。于是给了几个解决方法
1、npm clean一下,然后重启下vscode
2、node --max-old-space-size=4096,试了下扩容
3、重装项目的node包
试了以上几种方式之后,跑起来还是报相同的错。

于是最后又试了下重装npm包的node_modules,再重新跑项目,发现不会再报错了。

记录一下,防止后面遇到类似问题又毫无头绪。

### 解决 npm run build 时 JavaScript 堆内存不足的方法 当执行 `npm run build` 遇到 JavaScript 堆内存不足错误时,可以通过增加 Node.js 的最大堆内存来解决问题。具体方法如下: #### 方法一:通过命令行参数临时调整 可以在运行构建脚本时直接传递 `--max-old-space-size` 参数给 Node.js 来增大可用的堆空间大小。 ```bash node --max-old-space-size=4096 ./node_modules/.bin/webpack --config webpack.config.prod.js ``` 上述命令将最大旧生代堆大小设置为 4GB[^1]。 #### 方法二:修改 package.json 中的 scripts 字段 如果希望每次构建都应用此配置而无需每次都手动指定,则可以编辑项目的 `package.json` 文件,在相应的 script 后面追加该选项: ```json { "scripts": { "build": "NODE_OPTIONS='--max_old_space_size=8192' react-scripts build" } } ``` 这里设置了环境变量 NODE_OPTIONS 并指定了更大的内存限制 (8 GB)。 #### 方法三:全局设置 Node.js 默认启动参数 对于频繁使用的开发机器而言,还可以考虑永久性地改变系统的默认行为。这通常涉及到修改 shell profile 或者使用 nvm 工具来进行管理。 ```bash echo 'export NODE_OPTIONS="--max-old-space-size=4096"' >> ~/.bashrc && source ~/.bashrc ``` 这样做的好处是可以让所有基于当前用户的 Node 应用受益于更高的内存上限。 #### 注意事项 需要注意的是,虽然提高 Node.js 进程的最大允许内存可以帮助缓解某些情况下出现的 OOM 错误,但这并不是根本性的解决方案。建议开发者们也关注代码本身的优化工作,比如减少不必要的依赖项加载、合理规划数据结构以及及时释放不再使用的资源等措施同样重要。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值