Et vanlig problem når du arbeider med et JavaScript Node.js-prosjekt er feilen "JavaScript-haugen tom for minne". Denne feilen oppstår vanligvis når standardminnet som er allokert av systemet til Node.js, ikke er nok til å kjøre et stort prosjekt.

Feilen er vanlig enten du kjører prosjektet på Windows, macOS eller en Linux-distribusjon som Ubuntu. Heldigvis er det noen få enkle reparasjoner som kan hjelpe med å løse feilen "JavaScript-haug tom for minne".

Hva er Heap Memory?

Før du ser på å fikse feilen, er det nyttig å forstå hva haugminne er og hvordan programmer bruker det.

Minne tildelt på systemhaugen kalles også dynamisk tildelt minne. Det er opp til programmereren å bruke det tilgjengelige minnet etter eget ønske. Enda viktigere, haugstørrelsen for et program avhenger av det tilgjengelige virtuelle minnet som er allokert til det.

Hvis du kjører et relativt stort prosjekt, kan det kreve mer minne enn standard tildelt del. Dette kan føre til at prosjektet krasjer og logger feilen "JavaScript-haug tom for minne".

Hvordan fikse JavaScript-haugen tom for minne på Windows

Uavhengig av IDE-en din, er feilrettingen "JavaScript-haug tom for minne" identisk.

Du kan legg til en miljøvariabel gjennom kontrollpanelet for å øke minnet som er allokert til et Node.js-prosjekt.

  1. Åpne Startmeny, søk etter Avanserte systeminnstillinger,og velg den beste matchen.
  2. Fra dialogboksen klikker du på Miljøvariabler, og klikk deretter på Ny fra begge Systemvariabler eller Brukervariabler. Førstnevnte gjelder for alle brukere på datamaskinen din, mens sistnevnte kun påvirker din nåværende konto
  3. I Variabelnavn feltet inn NODE_OPTIONS. I Variabel verdi feltet inn --max-old-space-size=4096. Denne verdien vil allokere 4 GB virtuelt minne til Node.js. For å angi en annen verdi, multipliser beløpet du trenger i GB med 1024 (variabelverdien må være i MB).
  4. Klikk på OK for å lagre endringene, og klikk deretter Søke om og klikk til slutt OK en gang til. Start prosjektet på nytt for at endringene skal tre i kraft.

Du kan også angi en miljøvariabel gjennom en Windows PowerShell-terminal.

Start en PowerShell-terminal, skriv inn kommandoen nedenfor og trykk Enter:

$env: NODE_OPTIONS="--max-old-space-size=4096"

Hvis du bare vil øke haugminnet midlertidig, kjør kommandoen nedenfor i en PowerShell-terminal før du kjører prosjektet:

sett NODE_OPTIONS=--max-old-space-size=4096

Når du har skrevet inn denne kommandoen, kan du distribuere/kjøre prosjektet ditt ved hjelp av npm kjøre dev eller ditt eget manus.

Husk alltid å angi ønsket minnestørrelse i MB. Hvis du ikke gjør det, kan det føre til uventet oppførsel i programmet. Det er også viktig å ikke tildele hele det tilgjengelige minnet ditt, da dette kan forårsake en betydelig systemfeil.

Slik fikser du feil med JavaScript-haug uten minne på macOS og Linux

På macOS og Linux er haugminnefikseringen veldig lik. Du burde eksportere en miljøvariabel som spesifiserer mengden virtuelt minne som er allokert til Node.js.

I terminalen din, før du kjører prosjektet, skriv inn følgende kommando og trykk Enter:

eksport NODE_OPTIONS=--max-old-space-size=4096

Dette vil allokere 4 GB virtuelt minne til utførelsesområdet til Node.js. For å angi en annen mengde minne, bytt ut 4096 med nødvendig mengde i MB.

Du kan legge til kommandoen ovenfor i konfigurasjonsfilen for å unngå å gjenta prosessen. For å gjøre det, følg det samme prosess for å angi PATH-variabelen.

Unngå JavaScript-haug tom for minne-feil

Du kan unngå denne feilen ved å sikre at programmet er fritt for minnelekkasjer. Riktig minnebehandling er avgjørende når du skriver programmene dine, spesielt på et lavnivåspråk.

Mens en økning av det tildelte minnet midlertidig løser problemet, bør du finne årsaken og fikse den.