Com solucionar l'error 'JavaScript heap out of memory' en builds

El teu build de Node.js falla per manca de memòria? Aprèn a utilitzar --max-old-space-size en local, package.json i CI/CD per solucionar-ho.

viernes, 3 de julio de 2026 • 3 min de lectura • Equip Q2BSTUDIO

Augmenta la memòria de Node.js en builds i CI/CD

Quan treballem amb projectes Node.js de gran envergadura, especialment durant processos de compilació amb eines com Webpack, Vite o Next.js, és freqüent trobar-nos amb un error crític que atura l'execució: la memòria del heap de V8 s'esgota. Aquesta fallada, identificada per un missatge que esmenta 'JavaScript heap out of memory', sol aparèixer sense un rastre clar a la traça, cosa que en dificulta la depuració. Comprendre per què ocorre i com solucionar-lo és essencial per mantenir fluxos de treball eficients, tant en entorns locals com en pipelines d'integració contínua.

L'origen del problema rau en els límits predeterminats que el motor V8 imposa a cada procés de Node.js. Depenent de la versió i l'arquitectura, aquest límit oscil·la entre 1,5 GB i 4 GB. En projectes amb un volum considerable de dependències, la creació d'arbres sintàctics abstractes (AST) durant el build consumeix més memòria de la permesa, provocant el crash. La solució directa consisteix a incrementar aquest límit mitjançant el flag --max-old-space-size, especificat en megabytes. Per exemple, assignar 4 GB addicionals sol ser suficient per a la majoria dels casos, tot i que en entorns molt exigents poden requerir-se 8 GB o més.

En el desenvolupament local, es pot definir temporalment la variable d'entorn NODE_OPTIONS abans de la comanda de build. En sistemes Unix o macOS, n'hi ha prou amb anteposar NODE_OPTIONS='--max-old-space-size=4096' a la comanda; a Windows, s'utilitza la sintaxi adequada per a la consola corresponent. Per evitar repetir aquesta configuració a cada sessió, el més pràctic és incorporar-la directament als scripts del fitxer package.json utilitzant una utilitat com cross-env, que garanteix compatibilitat entre sistemes operatius. D'aquesta manera, tot l'equip de desenvolupament comparteix una configuració homogènia.

Quan el build supera les proves locals però falla als servidors de desplegament, cal traslladar aquest ajust als serveis de CI/CD. A GitHub Actions, s'afegeix la variable d'entorn al pas corresponent. En contenidors Docker, es defineix mitjançant la instrucció ENV NODE_OPTIONS al Dockerfile. En plataformes d'hostatge gestionat com Vercel, Netlify o Cloudflare Pages, s'afegeix una variable d'entorn des del panell d'administració i es força un nou desplegament. Aquestes pràctiques asseguren que el procés de compilació disposi dels recursos necessaris en tot moment.

No obstant això, si tot i assignar 8 GB o més l'error persisteix, probablement ens enfrontem a un problema més profund: una fuita de memòria o un bucle infinit a la compilació. En aquest cas, convé revisar tres aspectes clau. Primer, desactivar els source maps en producció, ja que generar-los per a dependències massives consumeix molta RAM. Segon, auditar les dependències circulars amb eines com madge, ja que les importacions cícliques obliguen el compilador a fer avaluacions recursives que esgoten la memòria. Tercer, inspeccionar el heap en temps d'execució amb el flag --inspect i les eines de desenvolupament de Chrome, cosa que permet identificar objectes que no s'alliberen correctament.

En l'àmbit professional, gestionar aquests límits forma part de les bones pràctiques en el desenvolupament d'aplicacions a mida. A Q2BSTUDIO, com a empresa especialitzada en tecnologia i programari, abordem aquests desafiaments amb un enfocament integral que combina optimització d'infraestructura, supervisió de rendiment i arquitectures robustes. Per exemple, en desplegar solucions en serveis cloud AWS i Azure, configurem els recursos de còmput perquè els processos de build no es vegin limitats. Així mateix, en projectes d'intel·ligència artificial per a empreses o amb agents IA, on els models i les càrregues de treball poden ser intensius, apliquem aquestes tècniques per garantir estabilitat. La ciberseguretat també hi és present: un build que falla per manca de memòria pot exposar dades sensibles si no es gestiona adequadament. Per això, oferim serveis d'intel·ligència de negoci i Power BI que requereixen entorns de compilació fiables.

En resum, l'error 'JavaScript heap out of memory' té solució: ajustar el límit de memòria del heap de V8, implementar la configuració de manera consistent a tots els entorns i, en casos persistents, investigar fuites o dependències problemàtiques. Adoptar aquestes mesures no només desbloqueja el desenvolupament, sinó que eleva la qualitat del producte final. A Q2BSTUDIO, acompanyem els nostres clients a cada etapa, des del disseny de programari a mida fins al desplegament al núvol, assegurant que cada build es completi sense contratemps.

UNA PAUSA?

Juga una estona abans de marxar

ELS NOSTRES SERVEIS

Com et podem ajudar

Tens un projecte en ment?

Explica'ns la teva visió i la convertim en una solució de programari. Sigui quin sigui l'abast, fem realitat la teva idea.