首页 > 解决方案 > TypeScript 服务因 IntelliJ 中的“堆限制附近分配失败 - JavaScript 堆内存不足”错误而崩溃

问题描述

下面是 IntelliJ IDEA 中 typescript 服务的配置:

在此处输入图像描述

服务不断崩溃和重生,这里是日志输出

Process: TypeScript service version: 3.2.1
Process: Default service options: {"baseUrl":"/Users/antkong/dev/myproject/src","experimentalDecorators":true,"importHelpers":false,"jsx":2,"lib":["lib.dom.d.ts","lib.dom.iterable.d.ts","lib.es2018.d.ts"],"moduleResolution":2,"outDir":"/Users/antkong/dev/myproject/target","strict":true,"skipLibCheck":true,"target":2,"sourceMap":true,"module":6,"configFilePath":"/Users/antkong/dev/myproject/tsconfig.json"}
FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
 1: 0x1000389cc node::Abort() [/Users/antkong/.nvm/versions/node/v10.7.0/bin/node]
 2: 0x100038ba8 node::FatalTryCatch::~FatalTryCatch() [/Users/antkong/.nvm/versions/node/v10.7.0/bin/node]
 3: 0x1001a9d5a v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [/Users/antkong/.nvm/versions/node/v10.7.0/bin/node]
 4: 0x100578772 v8::internal::Heap::FatalProcessOutOfMemory(char const*) [/Users/antkong/.nvm/versions/node/v10.7.0/bin/node]
 5: 0x100577729 v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector, v8::GCCallbackFlags) [/Users/antkong/.nvm/versions/node/v10.7.0/bin/node]
 6: 0x1005753b8 v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [/Users/antkong/.nvm/versions/node/v10.7.0/bin/node]
 7: 0x1005818fc v8::internal::Heap::AllocateRawWithRetry(int, v8::internal::AllocationSpace, v8::internal::AllocationAlignment) [/Users/antkong/.nvm/versions/node/v10.7.0/bin/node]
 8: 0x100550294 v8::internal::Factory::NewFillerObject(int, bool, v8::internal::AllocationSpace) [/Users/antkong/.nvm/versions/node/v10.7.0/bin/node]
 9: 0x1007daf84 v8::internal::Runtime_AllocateInNewSpace(int, v8::internal::Object**, v8::internal::Isolate*) [/Users/antkong/.nvm/versions/node/v10.7.0/bin/node]
10: 0x4986b2841bd 

Disconnected

有什么办法可以增加节点进程的堆大小?

标签: node.jsintellij-idea

解决方案


有一个隐藏选项允许将参数传递给运行 TypeScript 服务的 Node.js 进程 - typescript.service.node.arguments

  • 帮助 | 查找操作...,键入registry
  • 打开Registry,在那里找到typescript.service.node.arguments键(您可以开始输入属性名称以导航到它)
  • 在那里添加--max_old_space_size选项(--max_old_space_size=4096例如)

https://github.com/thlorenz/v8-flags/blob/master/flags-0.11.md#max_old_space_size-0-integer

另请参阅https://www.npmjs.com/package/increase-memory-limit - 您可能会发现此实用程序很有帮助


推荐阅读