gpt4 book ai didi

node.js - meteor 构建内存不足

转载 作者:行者123 更新时间:2023-12-01 13:58:59 30 4
gpt4 key购买 nike

我正在尝试构建我的 meteor 应用程序,但经常遇到以下错误。这不是我第一次构建应用程序,在昨天构建之前一切正常。我已经尝试过:正如 [this SO post][1] 中的一个答案所建议的那样,但它没有帮助。

#!/usr/bin/env node --max_old_space_size=4096 --optimize_for_size --max_executable_size=4096 --stack_size=4096

控制台输出:

meteor build .

WARNING: The output directory is under your source tree.
Your generated files may get interpreted as source code!
Consider building into a different directory instead
meteor build ../output

Minifying app code \
<--- Last few GCs --->

103230 ms: Mark-sweep 1385.5 (1455.5) -> 1387.9 (1455.5) MB, 898.4 / 0 ms [allocation failure] [GC in old space requested].
104206 ms: Mark-sweep 1387.9 (1455.5) -> 1387.9 (1455.5) MB, 975.8 / 0 ms [allocation failure] [GC in old space requested].
105196 ms: Mark-sweep 1387.9 (1455.5) -> 1384.1 (1455.5) MB, 990.2 / 0 ms [last resort gc].
106101 ms: Mark-sweep 1384.1 (1455.5) -> 1385.1 (1455.5) MB, 905.3 / 0 ms [last resort gc].


<--- JS stacktrace --->

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

Security context: 0x249f6fdb4629 <JS Object>
1: /* anonymous */(aka /* anonymous */) [0x249f6fd041b9 <undefined>:~4943] [pc=0xcd10dd2f48c] (this=0x249f6fd041b9 <undefined>,self=0x1400b413881 <an AST_ObjectKeyVal with map 0xc3d3a4651b9>,output=0x17417c4edd79 <an Object with map 0x16588927e021>)
2: doit(aka doit) [0x249f6fd041b9 <undefined>:4190] [pc=0xcd10d7a3298] (this=0x249f6fd041b9 <undefined>)
3: print [0x249f6fd041b9 <unde...

FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - process out of memory
Aborted (core dumped)

最佳答案

同样的问题让我抓狂,但我终于在 meteor 1.4.3.1 下解决了它。

背景:

问题是 meteor 调用 Node 来构建。当它运行时, Node 会为其运行的 V8 引擎分配一定数量的内存。在更大的项目中,为 V8 分配的默认内存不足以跟踪所有内容 - 它试图在接近限制时进行垃圾收集,但最终空间不足并崩溃并显示错误。

如果我们只是直接运行 Node ,我们可以使用 --max-old-space-size 选项运行它,这将允许我们为 V8 引擎设置最大内存。问题是 meteor 在它自己的上下文和它自己的选项中调用 Node ,所以我们不能直接将标志添加到我们的 meteor 调用。

解决方法:

似乎 meteor 1.4.3.1(可能还有其他版本)在调用 Node 时会传递 TOOL_NODE_FLAGS 环境变量中指定的标志和选项(其他人提到了 NODE_OPTIONS,但它不适用于我的 meteor 版本 - the旗帜刚刚掉落)

所以如果你想将 Node 引擎的最大内存增加到4GB,添加一个环境变量

TOOL_NODE_FLAGS="--max-old-space-size=4096" 

到你正在运行 meteor 的上下文 - 该选项应该传递给 Node 调用。

(如果你不知道在哪里设置环境变量 - 它通常会在你的 IDE 构建配置或构建脚本中。如果你想健全检查 --max-old... 选项是否真的正在阅读,尝试将其更改为乱码 - 它应该会导致 meteor 抛出错误)

关于node.js - meteor 构建内存不足,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42084472/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com