#javascript #node.js #typescript
Вопрос:
У меня не tsc
получается выполнить работу в gitlab ci с FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
Сценарий, который я запускаю, таков tsc -p test/tsconfig.json --noEmit
То, что я пробовал до сих пор, — это увеличить max-old-space-size
с помощью:
cross-env NODE_OPTIONS=--max-old-space-size=8192 yarn print:heapsize amp;amp; tsc -p test/tsconfig.json --noEmit
cross-env NODE_OPTIONS='--max-old-space-size=8192' yarn print:heapsize amp;amp; tsc -p test/tsconfig.json --noEmit
(просто дополнительные кавычки вокруг var)node --max-old-space-size=8192 ./node_modules/.bin/tsc -p test/tsconfig.json --noEmit
Варианты № 1 и № 2 не работают, и № 3 работает нормально, но мне кажется неправильным запускать двоичный файл и передавать параметры в node cli
Итак, мой вопрос в том, как мне настроить max-old-spce-size
tsc
via env variables
или, может быть, есть другой хороший способ сделать это?
yarn print:heapsize
это скрипт, который я использовал для проверки текущего размера — он показывает 8 ГБ как для #1, так и для #2 вот он:
"print:heapsize": "node -e "console.log('🔥 Current heap size:', (require('v8').getHeapStatistics().total_available_size / 1024 / 1024 / 1024).toFixed(2), 'Gb')""
Ответ №1:
Первые два варианта завершаются ошибкой, потому что переменная среды NODE_OPTIONS=--max-old-space-size=8192
применяется только к первой команде ( yarn print:heapsize
), которая находится до amp;amp;
этого .
Если вы удалите yarn print:heapsize amp;amp;
среду, она будет применена к команде компиляции, как и ожидалось:
cross-env NODE_OPTIONS=--max-old-space-size=8192 tsc -p test/tsconfig.json --noEmit
Комментарии:
1. на самом деле я начал с этого и поднял до 8192, затем 10240, а затем 16384 — только после того, как он продолжал терпеть неудачу, я добавил
print:heapsize
2. но, может быть, я приковал его чем-то другим, что время перепроверит, спасибо!
3. вы совершенно правы, в моих первых попытках была командная цепочка, tyvm!
4. @godblessstrawberry Добро пожаловать!