首先看到这种就是内存泄漏,问题找准了,接下来就是疯狂百度,csdn搜索,试了3个方法,最后一个有用。
1):
执行npm命令报错:FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of me
字面意思:JavaScript堆内存不足。因为Node 是基于V8引擎,在 Node 中通过 JavaScript 使用内存时只能使用部分内存。
尝试了删除C:\Users{账户}\下的.npmrc文件,并没起作用。
解决方案:通过 increase-memory-limit 插件
安装插件:npm install -g increase-memory-limit
执行命令:npx cross-env LIMIT=4096 increase-memory-limit
最后执行:npm start启动项目即可
————————————————
2):
node内存泄漏耗尽解决方法:
在使用最新Vue脚手架vue-cli搭建的项目开发时,因为频繁修改代码,导致内存溢出,出现:
FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed
(致命错误:使用任何“NPM”命令时JavaScript堆将耗尽内存)
三种解决方法:
一,您需要增加节点允许的内存量。
您可以通过以下方式在全局范围内执
1、打开一个cmd窗口
2、跑 setx NODE_OPTIONS --max_old_space_size=10240
3、关闭所有cmd /代码编辑器
4、重新打开cmd并再次运行节点命令(npm等)
———————————————————————————————————————————
二,直接覆盖
简单粗暴,直接在package.json替换scripts下的serve指令内容:
serve" : "node --max_old_space_size=4096 node_modules/.bin/vue-cli-service serve --open
开发时运行npm run serve或yarn serve即可。
———————————————————————————————————————————
三、优雅的覆盖
和以上的方法唯一的不同,就是不需要编写vue-cli-service包的路径,代码更优雅,也不受包地址 的影响。
全局安装npx: npm i -g npx
直接在package.json替换scripts下的serve指令内容:
serve": "npx --max_old_space_size=4096 vue-cli-service serve
开发时运行npm run serve或yarn serve
3):
解决办法:在package.json里添加,使用 increase-memory-limit 解决
01) npm install increase-memory-limit #本项目中使用 [ 选择自己的方式 ] # npm install -g increase-memory-limit 全局使用
02) npm install --save cross-env
03) 修改 package.json 如下:[ LIMIT大小自己设置 ]
"scripts": {
"fix-memory-limit": "cross-env LIMIT=2048 increase-memory-limit"
},
04) npm run fix-memory-limit(只需执行一次即可)