前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >关于node项目打包内存溢出JS stacktrace

关于node项目打包内存溢出JS stacktrace

作者头像
用户1437675
发布2022-03-24 08:42:35
2.5K0
发布2022-03-24 08:42:35
举报
文章被收录于专栏:Angular&服务Angular&服务

问题

代码语言:javascript
复制
<--- Last few GCs --->

   58003 ms: Mark-sweep 1350.6 (1434.6) -> 1350.5 (1434.6) MB, 753.0 / 0.0 ms [allocation failure] [GC in old space requested].
   58751 ms: Mark-sweep 1350.5 (1434.6) -> 1350.5 (1434.6) MB, 747.6 / 0.0 ms [allocation failure] [GC in old space requested].
   59479 ms: Mark-sweep 1350.5 (1434.6) -> 1352.9 (1404.6) MB, 728.1 / 0.0 ms [last resort gc].
   60211 ms: Mark-sweep 1352.9 (1404.6) -> 1355.4 (1404.6) MB, 731.9 / 0.0 ms [last resort gc].


<--- JS stacktrace --->

==== JS stack trace =========================================

Security context: 0000017B93ACFB61 <JS Object>
    1: init_scope_vars [0000017B93A04381 <undefined>:~3382] [pc=0000021C499F308D] (this=000003B07C026939 <an AST_Function with map 000001FA502ACAB9>,nesting=3)
    2: visit [0000017B93A04381 <undefined>:~3246] [pc=0000021C499EFC85] (this=000003CB4FA172A1 <a TreeWalker with map 000001FA502AEB61>,node=000003B07C026939 <an AST_Function with map 000001FA502ACAB9>,descend=000003EF887DA4C9 <JS Func...

FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory

问题图片

解决办法一

设置node变量使用最大内存为自己需要的

代码语言:javascript
复制
# linux & mac下面
export NODE_OPTIONS=--max_old_space_size=8096

# windows 下面
set NODE_OPTIONS=--max_old_space_size=8096

# 使用cross-env解决mac 与 windows 的差异
npm install --save-dev cross-env # 安装

cross-env NODE_OPTIONS=--max_old_space_size=8096

例如

代码语言:javascript
复制
cross-env NODE_OPTIONS=--max_old_space_size=8096 npm run build

解决方法二

通过package.json加大内存,在启动node

代码语言:javascript
复制
node --max-old-space-size=8192 node\_modules/rollup/bin/rollup -c rollup-config.js

解决方法三

注:如果是按照方案三解决的话,在gitbash下执行npm run build的话会报错。

在nodejs 根目录下把node.exe 重命名一下(比如node2.exe,防止和node.cmd冲突),建一个node.cmd文件 里面写上 node2.exe --max-old-space-size=4096 %* 大概意思就是本来调用node.exe的时候被node.cmd劫持,强制分配最大内存为4096MB ,然后再调用node.exe。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022.03.04 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 问题
  • 解决办法一
  • 解决方法二
  • 解决方法三
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档