我在GitLab CI上运行tsc
作业时遇到了以下错误:
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 && tsc -p test/tsconfig.json --noEmit
cross-env NODE_OPTIONS='--max-old-space-size=8192' yarn print:heapsize && tsc -p test/tsconfig.json --noEmit
(只是在变量周围添加额外的引号)node --max-old-space-size=8192 ./node_modules/.bin/tsc -p test/tsconfig.json --noEmit
选项#1和#2都不起作用,而#3可以正常工作,但我觉得通过二进制文件传递参数给node cli
并不好。
所以我的问题是:我该如何通过env变量
设置tsc
的max-old-spce-size
或者还有其他好的方法吗?
yarn print:heapsize
是我用来检查当前大小的脚本,它在#1和#2中都显示8GB,这是它:
"print:heapsize": "node -e \"console.log(' Current heap size:', (require('v8').getHeapStatistics().total_available_size / 1024 / 1024 / 1024).toFixed(2), 'Gb')\""
以下是输出结果: