Как передать опции на узел при использовании babel-node

Babel CLI docs ( https://babeljs.io/docs/usage/cli/):

babel-node [options] [ -e script | script.js ] [arguments]

Но при попытке увеличить выделенную память для узла:

babel-node --max-old-space-size=16384 script.js

аргумент --max-old-space-size=16384 кажется, игнорируется

Знает ли sb, должно ли это работать, а если нет - какой-нибудь обходной путь?

2 ответа

Решение

Редактировать: (Juli 2016) Начиная с версии 6.11.4, теперь поддерживаются все варианты. Пример, размещенный в вопросе, работает сейчас.


Babel в версии 6.11.3 пока не поддерживает все варианты v8Flags.

Сам узел поддерживает передачу этих флагов либо с подчеркиванием (--max_old_space_size) или тире (--max-old-space-size).

В отличие от этого babel-node поддерживает эти флаги, только если они указаны с подчеркиванием и не поддерживает формат --flag=value ,

Существует открытый запрос, который решает эту проблему. К сожалению, в настоящее время нет обходного пути для указания v8Flags со значениями.

Я использую Babel 7, и это действительно работает.

babel-node --max-old-space-size=16384 script.js

Простой способ проверить это - просто уменьшить размер до 100 КБ, и вам быстро не хватит памяти.

Вы также можете использовать переменную среды для обхода babel-node необходимость поддерживать флаг все вместе.

NODE_OPTIONS=--max-old-space-size=16384 babel-node [options] [ -e script | script.js ] [arguments]

В моем случае мне нужно было использовать --tls-min-v1.0 но babel-node не знает этого флага.

NODE_OPTIONS=--tls-min-v1.0 сделали свое дело.

Существует ошибка, возможно связанная с узлом v10... v8flags v2 не работает, вам нужно использовать текущие v8flags 3.1.1.

Я использую пряжу для инструментов глобального узла, вот быстрая команда, чтобы сделать быстрое исправление (вероятно, будет переделано на каждом yarl global add)...

Если используется babel-cli 6 глобальная пряжа, добавьте v8flags rm -rf ~/.config/yarn/global/node_modules/babel-cli/node_modules/v8flags

Вы можете использовать babel 7, но в ваших конфигурациях babel есть много изменений, которые можно сделать глобально add @babel/core @babel/node

Другие вопросы по тегам