如何使用 NODE_OPTIONS 环境变量在 Windows 中全局设置 max_old_space_size?
Posted
技术标签:
【中文标题】如何使用 NODE_OPTIONS 环境变量在 Windows 中全局设置 max_old_space_size?【英文标题】:How to use the NODE_OPTIONS environment variable to set the max_old_space_size globally in Windows? 【发布时间】:2019-11-06 14:25:11 【问题描述】:在运行节点二进制文件时修复堆内存不足的解决方法(这是使用 TypeScript 2.1+ 和 webpack 时的常见问题)正在增加节点的最大内存。
increase-memory-limit 是一个包来做到这一点。在链接中,它说
从 2017 年 8 月发布的 Node.js v8.0 开始,您现在可以使用 NODE_OPTIONS 环境变量设置 max_old_space_size 全球范围内。导出 NODE_OPTIONS=--max_old_space_size=4096
但是如何在 Windows 中设置该环境变量?在 powershell 中,它给了我错误“导出:“导出”一词未被识别为 cmdlet、函数、脚本文件或可运行程序的名称。 检查名称的拼写,如果包含路径,请验证路径是否正确,然后重试。"。
【问题讨论】:
【参考方案1】:export
是一个 Linux 命令。对于 Windows,您可以使用 set
:
set NODE_OPTIONS=--max_old_space_size=4096
【讨论】:
如何检查是否已应用? 这将帮助您 v8.getHeapStatistics().total_available_size / 1024 / 1024 从版本 10.14.1 开始,命令行 arg 和环境变量 NODE_OPTIONS 都可以工作set
不应该在部分之间持续存在吗?我的意思是,我关闭了我的终端,问题已经存在......如果没有,有没有办法让它持续存在?
我认为您可以使用setx 在 Windows Server 上持久化环境变量。它varies on other versions.
使用 set NODE_OPTIONS=--max_old_space_size=4096 设置后当我检查它时: node -e 'console.log(v8.getHeapStatistics().heap_size_limit/(1024*1024))'它没有增加.....【参考方案2】:
根据 nodeJs 文档,属性应该是(带连字符)
--max-old-space-size=SIZE(以兆字节为单位)
并且可以像其他人所说的那样用于启动脚本或使用 NODE_OPTIONS 设置/导出。无需为此导入新库。
$ node --max-old-space-size=800 index.js
参考:https://nodejs.org/api/cli.html#cli_max_old_space_size_size_in_megabytes
【讨论】:
【参考方案3】:要在 AWS Instance 上解决此问题,
登录 AWS 控制台并从“实例状态”点击关闭实例
然后在操作点按下
选择更改实例类型
然后选择t2.medium,保存退出
返回并开始实例
然后再次运行您的应用
这在 t2.micro 实例上很常见,因为它是 1 gig Ram
谢谢
【讨论】:
以上是关于如何使用 NODE_OPTIONS 环境变量在 Windows 中全局设置 max_old_space_size?的主要内容,如果未能解决你的问题,请参考以下文章
opensslErrorStack: [ ‘error:03000086:digital envelope routines::initialization error‘ ], library:
opensslErrorStack: [ ‘error:03000086:digital envelope routines::initialization error‘ ], library: