由于 IntelliJ 中的“无效标记压缩接近堆限制分配失败 - JavaScript 堆内存不足”错误,TypeScript 服务崩溃

Ant*_*ong 7 intellij-idea node.js

以下是 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
Run Code Online (Sandbox Code Playgroud)

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

len*_*ena 8

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

  • 帮助| 查找操作...,输入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 - 您可能会发现此实用程序很有帮助