Aquí les comparto una solución no tan conocida a un problema común al trabajar un proyecto muy extenso basado en javascript al compilar en CI (Continuous Integration), como Angular y NodeJS en este caso.
Aquí les comparto una solución no tan conocida a un problema común al trabajar un proyecto muy extenso basado en javascript al compilar en CI (Continuous Integration), como Angular y NodeJS en este caso.
1 |
FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed — process out of memory |
Es muy común el uso de plataformas como Visual Studio Team Service, Travis CI y otros similares para proyectos web que incluyen una característica de «Continuous Integration», traducido al español significa Integración Continua, y este sigue la estrategia de DevOps. Algunas veces tu proyecto de NodeJS o Angular empieza a crecer y llega a exceder el límite de memoria predeterminado en el servidor.
Por defecto el limite de memoria en NodeJS es 512 MB, para resolver este problema se necesita incrementar el limite de memoria por medio del comando max-old-space-size. Por ejemplo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
#Increase the memory limit to Angular node --max-old-space-size=1024 ./node_modules/@angular/cli/bin/ng build --prod #increase to 1gb node --max-old-space-size=2048 ./node_modules/@angular/cli/bin/ng build --prod #increase to 2gb node --max-old-space-size=3072 ./node_modules/@angular/cli/bin/ng build --prod #increase to 3gb node --max-old-space-size=4096 ./node_modules/@angular/cli/bin/ng build --prod #increase to 4gb node --max-old-space-size=5120 ./node_modules/@angular/cli/bin/ng build --prod #increase to 5gb node --max-old-space-size=6144 ./node_modules/@angular/cli/bin/ng build --prod #increase to 6gb node --max-old-space-size=7168 ./node_modules/@angular/cli/bin/ng build --prod #increase to 7gb node --max-old-space-size=8192 ./node_modules/@angular/cli/bin/ng build --prod #increase to 8gb #Increase the memory limit to NodeJS node --max-old-space-size=1024 index.js #increase to 1gb node --max-old-space-size=2048 index.js #increase to 2gb node --max-old-space-size=3072 index.js #increase to 3gb node --max-old-space-size=4096 index.js #increase to 4gb node --max-old-space-size=5120 index.js #increase to 5gb node --max-old-space-size=6144 index.js #increase to 6gb node --max-old-space-size=7168 index.js #increase to 7gb node --max-old-space-size=8192 index.js #increase to 8gb |
Puedes incluir este comando a tu pipeline directamente o a tus comandos del package.json; la segunda opción es la mejor opción, porque es más rápido de modificar.
Estas son mis fuentes y en el momento de la creación de esta publicación estoy utilizando esta gran solución:
https://medium.com/%40vuongtran/how-to-solve-process-out-of-memory-in-node-js-5f0de8f8464c
Estos es todo codictados, happy coding!