developit / developit/workerize-loader
FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory
- Dominant language
- JavaScript
- Stars
- 2.3k
- Forks
- 85
- PR merge metrics
- No merged PRs in 30d
Description
Hi, I'm trying to use your package but I'm not able to make it work. If I remove my worker from the application compiles fine, once I uncomment the code I get the error message:
```
69% building 3094/3117 modules 23 active C:\Desarrollo\uiserpreco2\uiserpreco\node_modules\ts-loader\index.js!C:\Desarrollo\uiserpreco2\uiserpreco\src\app\components\Maintenance\Clients\ClientWizardRedirect.tsx
<--- Last few GCs --->
[7332:000001A3BF8073C0] 211369 ms: Mark-sweep (reduce) 2039.2 (2082.9) -> 2038.6 (2083.4) MB, 2201.3 / 0.0 ms (average mu = 0.085, current mu = 0.013) allocation failure scavenge might not succeed
[7332:000001A3BF8073C0] 213807 ms: Mark-sweep (reduce) 2039.7 (2083.4) -> 2038.9 (2083.9) MB, 2432.5 / 0.0 ms (average mu = 0.046, current mu = 0.002) allocation failure scavenge might not succeed
<--- JS stacktrace --->
FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory
1: 00007FF6D0B9BD2F v8::internal::CodeObjectRegistry::~CodeObjectRegistry+112159
2: 00007FF6D0B2CD66 v8::internal::WebSnapshotDeserializer::context_count+65430
3: 00007FF6D0B2DC1D node::OnFatalError+301
4: 00007FF6D1467BBE v8::Isolate::ReportExternalAllocationLimitReached+94
5: 00007FF6D145283D v8::SharedArrayBuffer::Externalize+781
6: 00007FF6D12D532C v8::internal::Heap::EphemeronKeyWriteBarrierFromCode+1468
7: 00007FF6D12D2662 v8::internal::Heap::CollectGarbage+3778
8: 00007FF6D12D01B5 v8::internal::Heap::AllocateExternalBackingStore+1909
9: 00007FF6D12F35D1 v8::internal::Factory::NewFillerObject+209
10: 00007FF6D1023175 v8::internal::DateCache::Weekday+1349
11: 00007FF6D14EFF01 v8::internal::SetupIsolateDelegate::SetupHeap+472849
12: 000001A3C26AA381
```
I'm using your package with path, not with webpack. And I'm using it like this:
I'm importing the worker in my class component like this:
```
import createFooWorker from 'workerize-loader!../../workers/headerWorker';
import * as headerWorker from '../../workers/headerWorker';
const workerHeader = createFooWorker();
```
and I'm using it like this:
```
componentWillUnmount() {
workerHeader.terminate();
}
async handleCreateExcel() {
const { excelData } = this.state;
await workerHeader.getExcelData(excelData);
}
async getNotifications(emitLang = false) {
if (!this.searchingNotifications) {
this.searchingNotifications = true;
updateTaskGridObs.send();
await workerHeader.getNotifications().then((response: any) => {
this.setState(
{
notifications: is.existy(response) && hasItems(response.Result) ? response.Result : [],
},
() => {
this.searchingNotifications = false;
if (emitLang) this.props.i18n.changeLanguage(this.state.selectedLang);
},
);
});
}
}
```
I've defined the module package in my typings.d.ts like this (I've found this code looking the package isssues):
```
declare module 'workerize-loader!*' {
type AnyFunction = (...args: any[]) => any;
type Async = (...args: Parameters) => Promise>;
type Workerized = Worker & { [K in keyof T]: T[K] extends AnyFunction ? Async : never };
function createInstance(): Workerized;
export = createInstance;
}
```
I've also tried to increase the memory with: SET NODE_OPTIONS=--max_old_space_size=8192, but didn't solve the problem.
I don't understand what I'm doing wrong,. any help will be apreciated. Thanks in advance
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.