Tengo un trabajo de tsc que falla en gitlab ci con un FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
El script que estoy ejecutando es tsc -p test/tsconfig.json --noEmit
Lo que he intentado hasta ahora es aumentar max-old-space-size través de:
cross-env NODE_OPTIONS=--max-old-space-size=8192 yarn print:heapsize && tsc -p test/tsconfig.json --noEmitcross-env NODE_OPTIONS='--max-old-space-size=8192' yarn print:heapsize && tsc -p test/tsconfig.json --noEmit (solo comillas adicionales alrededor de var)node --max-old-space-size=8192 ./node_modules/.bin/tsc -p test/tsconfig.json --noEmit Las opciones n.° 1 y n.° 2 no funcionan, y la n.° 3 funciona bien, pero no me parece bien ejecutar el binario y pasar el parámetro al node cli
Entonces, mi pregunta es: ¿cómo configuro max-old-spce-size para tsc a través de env variables o tal vez hay otra buena manera de hacerlo?
yarn print:heapsize es el script que usé para verificar el tamaño actual; muestra 8 gb para el n. ° 1 y el n. ° 2 aquí está:
"print:heapsize": "node -e \"console.log('🔥 Current heap size:', (require('v8').getHeapStatistics().total_available_size / 1024 / 1024 / 1024).toFixed(2), 'Gb')\""
Las dos primeras opciones fallan porque la variable de entorno NODE_OPTIONS=--max-old-space-size=8192 se aplica solo al primer comando ( yarn print:heapsize ) que está antes de && .
Si elimina yarn print:heapsize && , el entorno se aplicará al comando de compilación como se esperaba:
cross-env NODE_OPTIONS=--max-old-space-size=8192 tsc -p test/tsconfig.json --noEmit
tsc está en desuso pero puede usar ts-node con --max-old-space-size en NODE_OPTIONS
Agregue estas opciones en su package.json
{ "scripts": { "start": "NODE_OPTIONS='--max-old-space-size=8192' ts-node index.ts" } }