npm运行出现堆内存溢出问题

运行NPM时出现JavaScript内存溢出问题

  • npm运行出现堆内存溢出问题
    • 问题原因
    • 解决方案一
    • 解决方案二

npm运行出现堆内存溢出问题

![在这里插入图片描述](https://img-blog.csdnimg.cn/20200528165824866.png
当npm run dev的时候出现上述问题,这里提示javascript堆内存溢出。

问题原因

CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory JavaScript堆内存不足。查阅网上资料后,这里说的 JavaScript 其实就是 Node。
JavaScript 是一款拥有「自动垃圾回收」功能的编程语言。V8 作为一个 JavaScript 引擎,最初服务于 Google Chrome 浏览器的。它随着 Chrome 的第一版发布而发布以及开源。现在它除了 Chrome 浏览器,已经有很多其他的使用者了。诸如 NodeJS、MongoDB、CouchDB 等。在 Node 中通过 JavaScript 使用内存时只能使用部分内存(64位系统下约为1.4 GB,32位系统下约为0.7 GB)。如果项目十分庞大,超出了V8对于Node默认的内存最大限制,就会出现此问题。

解决方案一

1.打开一个cmd窗口
2. setx NODE_OPTIONS --max_old_space_size=8192(这个操作设置用户变量)
3.关闭所有cmd /代码编辑器
4. 重新打开cmd并再次运行npm命令

知识点:
SETX命令:Window XP 以上的系统都自带了该命令(如果没有,下载一个Setx.exe),这种方式为永久设定环境变量。
设置用户环境变量 setx path “%JAVA_HOME%\bin”
设置系统环境变量 setx path “%JAVA_HOME%\bin” /m

使用时,应该注意:
1.setx设置环境变量后,将在新打开的终端中生效,当前终端不会立即生效。
2.setx在设置变量的长度超过1024,会截取多出的字符。
3.setx还可以操作远程计算机,具体参数设置百度一下setx用法。
4.setx在设置某一变量的值,如果已经存在该变量会覆盖之前的值。所以正确方式是:要保存值=获取当前该变量的值+新值。

解决方案二

1.打开你的工程中的package.json文件
2.找到
“scripts":{
“build”:“node build/build.js”
}
3.在build中加入–max_old_space_size=8192
即:
“scripts":{
“build”:“node --max_old_space_size=8192 build/build.js”
}

以上参考:《深入浅出Node.js》

你可能感兴趣的:(前端)