Параметры командной строки
Node.js поставляется с различными параметрами командной строки. Эти параметры предоставляют встроенные возможности отладки, различные способы выполнения скриптов и другие полезные параметры выполнения.
Для просмотра данного документа в виде страницы справки в терминале, выполните man node.
Резюме
node [options] [V8 options] [script.js | -e "script" | -] [--] [arguments]
node inspect [script.js | -e "script" | <host>:<port>] …
node --v8-options
Выполнение без аргументов запускает REPL.
Для получения дополнительной информации о node inspect, см. документацию по отладчику.
Параметры
Все параметры, включая параметры V8, позволяют разделять слова как дефисами (-), так и подчеркиваниями (_).
Например, --pending-deprecation эквивалентно --pending_deprecation.
Если параметр, принимающий одно значение, например --max-http-header-size, передаётся более одного раза, то будет использовано последнее переданное значение. Параметры из командной строки имеют приоритет над параметрами, переданными через переменную окружения NODE_OPTIONS.
-
Псевдоним для stdin. Аналогично использованию - в других утилитах командной строки, что означает, что скрипт будет считываться из stdin, а остальные параметры передаются этому скрипту.
--
Указывает конец параметров Node.js. Передаёт остальные аргументы в скрипт. Если до этого не указано имя файла скрипта или скрипт eval/print, то следующий аргумент будет использован как имя файла скрипта.
--abort-on-uncaught-exception
Прерывание вместо завершения приводит к генерации файла core для последующего анализа с помощью отладчика (например, lldb, gdb, и mdb).
Если этот флаг передан, поведение всё ещё может быть настроено на не прерывание через process.setUncaughtExceptionCaptureCallback() (и через использование модуля domain, который его использует).
--completion-bash
Печать скрипта завершения bash для Node.js, который можно использовать.
$ node --completion-bash > node_bash_completion $ source node_bash_completion
--conditions=condition
Включение экспериментальной поддержки пользовательских условий разрешения экспорта.
Разрешается любое количество имен пользовательских строковых условий.
Установленные по умолчанию условия Node.js "node", "default", "import", и "require" всегда применяются в определённом виде.
--cpu-prof
Запускает профилировщик V8 CPU при запуске и записывает профиль CPU в файл перед завершением.
Если --cpu-prof-dir не указан, сгенерированный профиль будет помещён в текущую рабочую директорию.
Если --cpu-prof-name не указан, сгенерированный профиль будет назван CPU.${yyyymmdd}.${hhmmss}.${pid}.${tid}.${seq}.cpuprofile.
$ node --cpu-prof index.js $ ls *.cpuprofile CPU.20190409.202950.15293.0.0.cpuprofile
--cpu-prof-dir
Указывает директорию, в которой будут размещены профили CPU, сгенерированные параметром --cpu-prof.
Значение по умолчанию контролируется параметром командной строки --diagnostic-dir.
--cpu-prof-interval
Указывает интервал выборки в микросекундах для профилей CPU, сгенерированных параметром --cpu-prof. Значение по умолчанию равно 1000 микросекунд.
--cpu-prof-name
Указывает имя файла профиля CPU, сгенерированного параметром --cpu-prof.
--diagnostic-dir=directory
Устанавливает директорию, в которую будут записываться все файлы диагностической информации. По умолчанию используется текущая рабочая директория.
Воздействует на директорию вывода по умолчанию для:
--disable-proto=mode
Отключает свойство Object.prototype.__proto__. Если mode равно delete, свойство будет полностью удалено. Если mode равно mode, обращения к свойству приведут к исключению с кодом ERR_PROTO_ACCESS.
--disallow-code-generation-from-strings
Вызывать исключение вместо встроенных языковых функций, таких как eval и new Function, которые генерируют код из строк. Это не влияет на модуль Node.js vm.
--enable-fips
Включить FIPS-совместимые криптографические функции при запуске. (Требуется, чтобы Node.js был собран с ./configure --openssl-fips.)
--enable-source-maps
Включить экспериментальную поддержку Source Map v3 для отслеживания стеков.
В настоящее время переопределение Error.prepareStackTrace игнорируется, когда установлен флаг --enable-source-maps.
--experimental-import-meta-resolve
Включить экспериментальную поддержку import.meta.resolve().
--experimental-json-modules
Включить экспериментальную поддержку JSON для загрузчика ES Modules.
--experimental-loader=module
Указать module пользовательского экспериментального загрузчика ECMAScript Modules . module может быть либо путём к файлу, либо именем ECMAScript Module.
--experimental-modules
Включить самые последние экспериментальные возможности модулей (устаревший параметр).
--experimental-policy
Использовать указанный файл в качестве политики безопасности.
--experimental-repl-await
Включить экспериментальную поддержку ключевого слова await в REPL.
--experimental-specifier-resolution=mode
Устанавливает алгоритм разрешения для разрешения спецификаторов ES модулей. Допустимые значения — explicit и node.
По умолчанию используется explicit, которое требует указания полного пути к модулю. Режим node включит поддержку необязательных расширений файлов и возможность импортировать директорию, содержащую файл index.
Для примеров использования см. настройку алгоритма разрешения спецификаторов ESM.
--experimental-vm-modules
Включить экспериментальную поддержку ES Modules в модуле vm.
--experimental-wasi-unstable-preview1
Включить экспериментальную поддержку интерфейса WebAssembly System Interface (WASI).
--experimental-wasm-modules
--force-context-aware
Отключить загрузку нативных плагинов, которые не являются контекстно-зависимыми.
Включить экспериментальную поддержку модулей WebAssembly.
--force-fips
Принудительно включить FIPS-совместимые криптографические функции при запуске. (Не может быть отключено из кода скрипта.) (Требует тех же условий, что и --enable-fips.)
--frozen-intrinsics
Включить экспериментальную поддержку замороженных встроенных функций, таких как Array и Object.
Поддержка предоставляется только для корневого контекста, и в настоящее время нет гарантий, что global.Array является фактической ссылкой на встроенную функцию по умолчанию. Код может быть нарушен при использовании этого флага.
--require выполняется до заморозки встроенных функций, чтобы разрешить добавление полифилов.
--heapsnapshot-signal=signal
Включает обработчик сигналов, который заставляет процесс Node.js записывать дамп кучи при получении указанного сигнала. signal должен быть допустимым именем сигнала. Отключено по умолчанию.
$ node --heapsnapshot-signal=SIGUSR2 index.js & $ ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND node 1 5.5 6.1 787252 247004 ? Ssl 16:43 0:02 node --heapsnapshot-signal=SIGUSR2 index.js $ kill -USR2 1 $ ls Heap.20190718.133405.15554.0.001.heapsnapshot
--heap-prof
Запускает профилировщик V8 кучи при запуске и записывает профиль кучи в файл перед завершением.
Если --heap-prof-dir не указан, сгенерированный профиль будет помещён в текущую рабочую директорию.
Если --heap-prof-name не указан, сгенерированный профиль будет назван Heap.${yyyymmdd}.${hhmmss}.${pid}.${tid}.${seq}.heapprofile.
$ node --heap-prof index.js $ ls *.heapprofile Heap.20190409.202950.15293.0.001.heapprofile
--heap-prof-dir
Укажите директорию, в которую будут помещены профили кучи, сгенерированные --heap-prof.
Значение по умолчанию контролируется параметром командной строки --diagnostic-dir.
--heap-prof-interval
Укажите средний интервал выборки в байтах для профилей кучи, сгенерированных --heap-prof. Значение по умолчанию — 512 * 1024 байт.
--heap-prof-name
Укажите имя файла профиля кучи, сгенерированного --heap-prof.
--http-parser=library
Выбирает библиотеку HTTP-парсера. Доступные значения:
-
llhttpдля https://llhttp.org/ -
legacyдля https://github.com/nodejs/http-parser
Значение по умолчанию — llhttp, если не указано иначе при сборке Node.js.
HTTP-парсер legacy устарел и будет выводить предупреждение об устаревании.
Этот флаг предназначен для экспериментов с внутренней реализацией HTTP-парсера Node.js. В будущем этот флаг может стать бесполезным и будет удален.
--http-server-default-timeout=milliseconds
Переопределяет значение по умолчанию для таймаута сокета сервера http, https и http2. Установка значения в 0 отключает таймаут сокета сервера. Если не указано, сокеты HTTP-сервера отключаются через 120 секунд (2 минуты). Программная установка таймаута имеет приоритет над значением, установленным с помощью этого флага.
--icu-data-dir=file
Укажите путь загрузки данных ICU. (Переопределяет NODE_ICU_DATA.)
--input-type=type
Это настраивает Node.js для интерпретации входных строк как CommonJS или как модуля ES. Входные строки принимаются через --eval, --print, или STDIN.
Допустимые значения — "commonjs" и "module". Значение по умолчанию — "commonjs".
--inspect-brk[=[host:]port]
Активировать инспектор на host:port и остановить на старте пользовательского скрипта. Значение по умолчанию host:port — 127.0.0.1:9229.
--inspect-port=[host:]port
Установить host:port для использования при активации инспектора. Полезно при активации инспектора отправкой сигнала SIGUSR1.
Значение хоста по умолчанию — 127.0.0.1.
См. предупреждение о безопасности ниже относительно использования параметра host.
--inspect[=[host:]port]
Активировать инспектор на host:port. Значение по умолчанию — 127.0.0.1:9229.
Интеграция инспектора V8 позволяет инструментам, таким как Chrome DevTools и IDE, отлаживать и профилировать экземпляры Node.js. Инструменты подключаются к экземплярам Node.js через TCP-порт и общаются, используя протокол Chrome DevTools.
Предупреждение: привязка инспектора к общедоступному IP:порту небезопасна
Привязка инспектора к общедоступному IP (включая 0.0.0.0) с открытым портом небезопасна, так как позволяет внешним хостам подключаться к инспектору и выполнять атаку удаленного выполнения кода.
Если задаётся хост, убедитесь, что:
- Хост недоступен из общедоступных сетей.
- Брандмауэр запрещает нежелательные подключения по указанному порту.
Более конкретно, --inspect=0.0.0.0 небезопасен, если порт (9229 по умолчанию) не защищён брандмауэром.
См. раздел безопасности отладки для получения дополнительной информации.
--inspect-publish-uid=stderr,http
Укажите способы экспонирования URL веб-сокета инспектора.
По умолчанию URL веб-сокета инспектора доступен в stderr и по адресу /json/list на http://host:port/json/list.
--insecure-http-parser
Используйте небезопасный HTTP-парсер, который принимает недопустимые HTTP-заголовки. Это может обеспечить совместимость с нестандартными реализациями HTTP. Также это может позволить атаку с подменой запросов и другие HTTP-атаки, которые полагаются на принятие недопустимых заголовков. Избегайте использования этого параметра.
--jitless
Отключить динамическое выделение исполняемой памяти. Это может потребоваться на некоторых платформах по соображениям безопасности. Это также может уменьшить поверхность атаки на других платформах, но может иметь сильное влияние на производительность.
Этот флаг унаследован от V8 и может быть изменён в дальнейшем. Он может исчезнуть в релизе без повышения версии.
--max-http-header-size=size
Укажите максимальный размер HTTP-заголовков в байтах. По умолчанию 8 КБ.
--napi-modules
Этот параметр не выполняет никаких действий. Он сохранён для совместимости.
--no-deprecation
Отключить предупреждения об устаревании.
--no-force-async-hooks-checks
Отключает проверки в runtime для async_hooks. Они всё равно будут включены динамически, когда async_hooks включён.
--no-warnings
Отключить все предупреждения процесса (включая предупреждения об устаревании).
--openssl-config=file
Загрузить файл конфигурации OpenSSL при запуске. Среди прочего, это может быть использовано для включения криптографии FIPS, если Node.js был скомпилирован с ./configure --openssl-fips.
--pending-deprecation
Выводить предупреждения о предстоящем устаревании.
Предупреждения о предстоящем устаревании, как правило, идентичны предупреждениям о runtime устаревании, за исключением того, что они по умолчанию выключены и не будут выводиться, если не установлен флаг командной строки --pending-deprecation, или переменная окружения NODE_PENDING_DEPRECATION=1. Предупреждения о предстоящем устаревании используются для предоставления механизма выборочного «предупреждения» для разработчиков, которые могут использовать его для обнаружения использования устаревших API.
--policy-integrity=sri
Указывает Node.js на выдачу ошибки до выполнения любого кода, если политика не имеет указанной целостности. Ожидается строка Subresource Integrity в качестве параметра.
--preserve-symlinks
Указывает загрузчику модулей сохранить символические ссылки при разрешении и кэшировании модулей.
По умолчанию, когда Node.js загружает модуль из пути, который символически связан с другим местоположением на диске, Node.js будет разыменовывать ссылку и использовать фактический путь на диске модуля как идентификатор и корневую папку для поиска других зависимых модулей. В большинстве случаев это поведение по умолчанию приемлемо. Однако при использовании символически связанных зависимостей peer, как показано в примере ниже, поведение по умолчанию вызывает исключение, если moduleA пытается потребовать moduleB в качестве зависимость peer:
{appDir}
├── app
│ ├── index.js
│ └── node_modules
│ ├── moduleA -> {appDir}/moduleA
│ └── moduleB
│ ├── index.js
│ └── package.json
└── moduleA
├── index.js
└── package.json Флаг командной строки --preserve-symlinks указывает Node.js использовать путь symlink для модулей вместо реального пути, позволяя находить символически связанные зависимости peer.
Обратите внимание, однако, что использование --preserve-symlinks может иметь другие побочные эффекты. В частности, символически связанные нативные модули могут не загружаться, если они связаны более чем из одного местоположения в дереве зависимостей (Node.js будет рассматривать их как два отдельных модуля и попытается загрузить модуль несколько раз, вызвав исключение).
Флаг --preserve-symlinks не применяется к главному модулю, что позволяет node --preserve-symlinks node_module/.bin/<foo> работать. Для применения такого же поведения к главному модулю также используйте --preserve-symlinks-main.
--preserve-symlinks-main
Указывает загрузчику модулей сохранить символические ссылки при разрешении и кэшировании главного модуля (require.main).
Этот флаг существует для того, чтобы основной модуль мог быть включён в такое же поведение, которое --preserve-symlinks предоставляет всем другим импортам; это отдельные флаги, однако, для обеспечения обратной совместимости со старыми версиями Node.js.
--preserve-symlinks-main не подразумевает --preserve-symlinks; ожидается, что --preserve-symlinks-main будет использоваться дополнительно к --preserve-symlinks, когда нежелательно следовать символическим ссылкам перед разрешением относительных путей.
См. --preserve-symlinks для получения дополнительной информации.
--prof
Генерировать вывод профилировщика V8.
--prof-process
Обработать вывод профилировщика V8, сгенерированный с использованием опции V8 --prof.
--redirect-warnings=file
Записывать предупреждения процесса в указанный файл вместо вывода в stderr. Файл будет создан, если он не существует, и будет дописываться в него, если он уже существует. Если при попытке записать предупреждение в файл произойдет ошибка, предупреждение будет записано в stderr.
Имя file может быть абсолютным путем. Если это не так, то каталогом по умолчанию для записи будет каталог, заданный опцией командной строки --diagnostic-dir.
--report-compact
Записывать отчеты в компактном формате, в виде однострочного JSON, более удобного для систем обработки журналов, чем стандартный многострочный формат, предназначенный для отображения человеку.
--report-dir=directory, report-directory=directory
Расположение, в котором будет сгенерирован отчет.
--report-filename=filename
Имя файла, в который будет записан отчет.
--report-on-fatalerror
Включает создание отчета при возникновении критических ошибок (внутренних ошибок в среде выполнения Node.js, таких как недостаток памяти), приводящих к завершению приложения. Полезно для анализа различных диагностических данных, таких как куча, стек, состояние цикла событий, использование ресурсов и т. д., чтобы разобраться в причине критической ошибки.
--report-on-signal
Включает создание отчета при получении указанного (или предопределённого) сигнала для работающего процесса Node.js. Сигнал для запуска отчета задаётся через --report-signal.
--report-signal=signal
Устанавливает или сбрасывает сигнал для генерации отчета (не поддерживается в Windows). Значение сигнала по умолчанию - SIGUSR2.
--report-uncaught-exception
Включает создание отчета при возникновении неперехваченных исключений. Полезно при просмотре стека JavaScript в сочетании с системным стеком и другими данными среды выполнения.
--throw-deprecation
Выбрасывать ошибки для устаревших функций.
--title=title
Установить process.title при запуске.
--tls-cipher-list=list
Указать альтернативный список шифров TLS по умолчанию. Требует, чтобы Node.js был скомпилирован с поддержкой криптографии (по умолчанию).
--tls-keylog=file
Записывать данные ключей TLS в файл. Данные ключей в формате NSS SSLKEYLOGFILE и могут быть использованы программным обеспечением (например, Wireshark) для расшифровки TLS-трафика.
--tls-max-v1.2
Установить tls.DEFAULT_MAX_VERSION в 'TLSv1.2'. Используется для отключения поддержки TLSv1.3.
--tls-max-v1.3
Установить значение по умолчанию для tls.DEFAULT_MAX_VERSION в 'TLSv1.3'. Используется для включения поддержки TLSv1.3.
--tls-min-v1.0
Установить значение по умолчанию для tls.DEFAULT_MIN_VERSION в 'TLSv1'. Используется для совместимости со старыми клиентами или серверами TLS.
--tls-min-v1.1
Установить значение по умолчанию для tls.DEFAULT_MIN_VERSION в 'TLSv1.1'. Используется для совместимости со старыми клиентами или серверами TLS.
--tls-min-v1.2
Установить значение по умолчанию для tls.DEFAULT_MIN_VERSION в 'TLSv1.2'. Это значение по умолчанию для версий 12.x и выше, но опция поддерживается для совместимости со старыми версиями Node.js.
--tls-min-v1.3
Установить значение по умолчанию для tls.DEFAULT_MIN_VERSION в 'TLSv1.3'. Используется для отключения поддержки TLSv1.2, которая менее безопасна, чем TLSv1.3.
--trace-deprecation
Выводить трассировки стеков для устаревших функций.
--trace-event-categories
Список категорий, которые должны отслеживаться при включении отслеживания событий трассировки с использованием --trace-events-enabled.
--trace-event-file-pattern
Шаблон строки, определяющий путь к файлу для данных событий трассировки, поддерживает ${rotation} и ${pid}.
--trace-events-enabled
Включает сбор информации о трассировке событий.
--trace-exit
Выводит трассировку стека при каждом добровольном выходе из среды, т. е. при вызове process.exit().
--trace-sigint
Выводит трассировку стека при получении сигнала SIGINT.
--trace-sync-io
Выводит трассировку стека при обнаружении синхронного ввода-вывода после первого оборота цикла событий.
--trace-tls
Выводит информацию о трассировке пакетов TLS в stderr. Это может быть использовано для отладки проблем с соединениями TLS.
--trace-uncaught
Выводить трассировки стека для неперехваченных исключений; обычно выводится трассировка стека, связанная с созданием Error, в то время как это заставляет Node.js также выводить трассировку стека, связанную с броском значения (которое необязательно является экземпляром Error).
Включение этой опции может негативно повлиять на работу сборщика мусора.
--trace-warnings
Выводить трассировки стека для предупреждений процесса (включая устаревшие функции).
--track-heap-objects
Отслеживать выделение объектов кучи для создания снимков кучи.
--unhandled-rejections=mode
По умолчанию все необработанные отклонения вызывают предупреждение, плюс предупреждение о устаревании для первого необработанного отклонения, если не используется обработчик unhandledRejection.
Использование этого флага позволяет изменить поведение при возникновении необработанного отклонения. Можно выбрать один из трёх режимов:
-
strict: Сгенерировать необработанное отклонение как неперехваченное исключение. -
warn: Всегда выводить предупреждение, независимо от того, установлен ли обработчикunhandledRejection, но не выводить предупреждение о устаревании. -
none: Заглушить все предупреждения.
--use-bundled-ca, --use-openssl-ca
Использовать встроенный магазин сертификатов Mozilla, поставляемый с текущей версией Node.js, или использовать магазин сертификатов по умолчанию OpenSSL. Магазин сертификатов по умолчанию выбирается во время сборки.
Встроенный магазин сертификатов, поставляемый с Node.js, представляет собой снимок магазина сертификатов Mozilla, который зафиксирован на момент выпуска. Он идентичен на всех поддерживаемых платформах.
Использование магазина OpenSSL позволяет вносить внешние изменения в магазин. Для большинства дистрибутивов Linux и BSD этот магазин поддерживается разработчиками дистрибутива и системными администраторами. Расположение магазина сертификатов OpenSSL зависит от конфигурации библиотеки OpenSSL, но его можно изменить во время работы, используя переменные среды.
См. SSL_CERT_DIR и SSL_CERT_FILE.
--use-largepages=mode
Переназначить статический код Node.js на страницы большой памяти при запуске. Если это поддерживается на целевой системе, это заставит статический код Node.js быть перемещён на страницы по 2 МБ вместо 4 КБ.
Для mode следующие значения допустимы:
-
off: Картирование не будет выполняться. Это значение по умолчанию. -
on: Если поддерживается операционной системой, будет выполнено картирование. Ошибка картирования будет проигнорирована, и сообщение будет выведено в стандартный поток ошибок. -
silent: Если поддерживается операционной системой, будет выполнено картирование. Ошибка картирования будет проигнорирована и не будет сообщена.
--v8-options
Печать опций командной строки V8.
--v8-pool-size=num
Устанавливает размер пула потоков V8, который будет использоваться для распределения фоновых задач.
Если установлено значение 0, V8 выберет подходящий размер пула потоков, основанный на количестве активных процессоров.
Если указанное значение больше максимального для V8, будет выбрано максимальное значение.
--zero-fill-buffers
Автоматически обнуляет все недавно выделенные экземпляры Buffer и SlowBuffer.
-c, --check
Синтаксическая проверка скрипта без выполнения.
-e, --eval "script"
Вычисляет следующий аргумент как JavaScript. Модули, которые предопределены в REPL, также могут быть использованы в script.
В Windows, использование cmd.exe одного одиночного кавычки не сработает корректно, так как распознаются только двойные " кавычки. В Powershell или Git bash, оба ' и " могут быть использованы.
-h, --help
Печать опций командной строки node. Вывод этой опции менее подробный, чем в этом документе.
-i, --interactive
Открывает REPL даже если стандартный ввод не кажется терминалом.
-p, --print "script"
Идентично -e, но выводит результат.
-r, --require module
Предварительная загрузка указанного модуля при запуске.
Следует правилам разрешения модулей require(). module может быть либо путем к файлу, либо именем модуля node.
-v, --version
Печать версии node.
Переменные среды
NODE_DEBUG=module[,…]
','-разделенный список основных модулей, которые должны отображать отладочную информацию.
NODE_DEBUG_NATIVE=module[,…]
','-разделенный список основных модулей C++, которые должны отображать отладочную информацию.
NODE_DISABLE_COLORS=1
При установке, цвета не будут использоваться в REPL.
NODE_EXTRA_CA_CERTS=file
При установке, известные «корневые» центры сертификации (например, VeriSign) будут расширены дополнительными сертификатами в file. Файл должен содержать один или несколько доверенных сертификатов в формате PEM. Сообщение будет выведено (один раз) с помощью process.emitWarning(), если файл отсутствует или имеет неправильный формат, но другие ошибки будут проигнорированы.
Ни известные, ни дополнительные сертификаты не используются, когда свойство опций ca явно указано для TLS или HTTPS клиента или сервера.
Эта переменная среды игнорируется, когда node выполняется с правами root или имеет установленные права доступа к файлам Linux.
NODE_ICU_DATA=file
Путь к данным ICU (Intl объект) данных. Будет расширять связанные данные при компиляции с поддержкой small-icu.
NODE_NO_WARNINGS=1
При установке в 1, предупреждения процесса будут отключены.
NODE_OPTIONS=options...
Список опций командной строки, разделенных пробелом. options... интерпретируются до опций командной строки, поэтому опции командной строки переопределяют или комбинируют после всего, что в options.... Node.js завершит работу с ошибкой, если используется опция, запрещенная в среде, такая как -p или имя файла скрипта.
В случае, если значение опции содержит пробелы (например, путь, указанный в --require), оно должно быть экранировано с помощью двойных кавычек. Например:
NODE_OPTIONS='--require "./my path/file.js"'
Флаг-синглтон, переданный как опция командной строки, переопределит тот же флаг, переданный в NODE_OPTIONS:
# The inspector will be available on port 5555 NODE_OPTIONS='--inspect=localhost:4444' node --inspect=localhost:5555
Флаг, который можно передавать многократно, будет обрабатываться так, как будто его NODE_OPTIONS экземпляры переданы вначале, а затем — экземпляры из командной строки:
NODE_OPTIONS='--require "./a.js"' node --require "./b.js" # is equivalent to: node --require "./a.js" --require "./b.js"
Разрешенные опции node.js:
--conditions--diagnostic-dir--disable-proto--enable-fips--enable-source-maps--experimental-import-meta-resolve--experimental-json-modules--experimental-loader--experimental-modules--experimental-policy--experimental-repl-await--experimental-specifier-resolution--experimental-vm-modules--experimental-wasi-unstable-preview1--experimental-wasm-modules--force-context-aware--force-fips--frozen-intrinsics--heapsnapshot-signal--http-parser--http-server-default-timeout--icu-data-dir--input-type--insecure-http-parser--inspect-brk-
--inspect-port,--debug-port --inspect-publish-uid--inspect--max-http-header-size--napi-modules--no-deprecation--no-force-async-hooks-checks--no-warnings--openssl-config--pending-deprecation--policy-integrity--preserve-symlinks-main--preserve-symlinks--prof-process--redirect-warnings--report-compact-
--report-dir,--report-directory --report-filename--report-on-fatalerror--report-on-signal--report-signal--report-uncaught-exception-
--require,-r --throw-deprecation--title--tls-cipher-list--tls-keylog--tls-max-v1.2--tls-max-v1.3--tls-min-v1.0--tls-min-v1.1--tls-min-v1.2--tls-min-v1.3--trace-deprecation--trace-event-categories--trace-event-file-pattern--trace-events-enabled--trace-exit--trace-sigint--trace-sync-io--trace-tls--trace-uncaught--trace-warnings--track-heap-objects--unhandled-rejections--use-bundled-ca--use-largepages--use-openssl-ca--v8-pool-size-
--zero-fill-buffers
Разрешенные опции V8:
--abort-on-uncaught-exception--disallow-code-generation-from-strings--huge-max-old-generation-size--interpreted-frames-native-stack--jitless--max-old-space-size--perf-basic-prof-only-functions--perf-basic-prof--perf-prof-unwinding-info--perf-prof-
--stack-trace-limit
--perf-basic-prof-only-functions, --perf-basic-prof, --perf-prof-unwinding-info, и --perf-prof доступны только в Linux.
NODE_PATH=path[:…]
':'-разделенный список директорий, добавляемых в начало пути поиска модулей.
В Windows это ';'-разделенный список.
NODE_PENDING_DEPRECATION=1
При установке в 1, вывод предупреждений о предстоящей устарелости.
Предупреждения о предстоящей устарелости в целом идентичны предупреждениям о текущей устарелости, за исключением того, что по умолчанию они выключены и не будут выводиться, если не установлен флаг командной строки --pending-deprecation или переменная среды NODE_PENDING_DEPRECATION=1. Предупреждения о предстоящей устарелости используются для предоставления механизма «предупреждения» для разработчиков, чтобы обнаружить устаревший API.
NODE_PENDING_PIPE_INSTANCES=instances
Устанавливает количество ожидающих обработчиков экземпляров канала при ожидании соединений сервером канала. Это ограничение только для Windows.
NODE_PRESERVE_SYMLINKS=1
При установке в 1, заставляет загрузчик модулей сохранять символические ссылки при разрешении и кэшировании модулей.
NODE_REDIRECT_WARNINGS=file
При установке, предупреждения процесса будут выводиться в указанный файл вместо вывода в stderr. Файл будет создан, если он не существует, и будет добавлен к концу, если он существует. Если при попытке записать предупреждение в файл произойдет ошибка, предупреждение будет выведено в stderr. Это эквивалентно использованию флага командной строки --redirect-warnings=file.
NODE_REPL_HISTORY=file
Путь к файлу, используемому для хранения истории REPL. По умолчанию путь — ~/.node_repl_history, но это значение переопределяется данной переменной. Установка значения в пустую строку ('' или ' ') отключает сохранение истории REPL.
NODE_REPL_EXTERNAL_MODULE=file
Путь к модулю Node.js, который будет загружен вместо встроенного REPL. Переопределение значения на пустую строку ('') использует встроенный REPL.
NODE_TLS_REJECT_UNAUTHORIZED=value
Если value равно '0', проверка сертификатов отключена для TLS-соединений. Это делает TLS, и HTTPS, соответственно, небезопасными. Использование этой переменной среды крайне не рекомендуется.
NODE_V8_COVERAGE=dir
При установке этого значения Node.js начнёт выводить данные о покрытии кода JavaScript V8 и данные о Source Map в указанный каталог (информация о покрытии записывается в файлы JSON с префиксом coverage).
NODE_V8_COVERAGE автоматически будет передаваться подпроцессам, что упрощает инструментирование приложений, вызывающих функции семейства child_process.spawn(). NODE_V8_COVERAGE можно установить в пустую строку, чтобы предотвратить передачу.
Вывод данных о покрытии
Данные о покрытии выводятся в виде массива объектов ScriptCoverage по ключу верхнего уровня result:
{
"result": [
{
"scriptId": "67",
"url": "internal/tty.js",
"functions": []
}
]
} Кэш карт исходного кода
Если найдены, данные о картах исходного кода добавляются к ключу верхнего уровня source-map-cache в объекте JSON покрытия.
source-map-cache — это объект, ключи которого представляют файлы, для которых были извлечены карты исходного кода, а значения включают URL исходной карты (в ключе url), информацию о формате карты исходного кода Source Map v3 (в ключе data) и длину строк исходного файла (в ключе lineLengths).
{
"result": [
{
"scriptId": "68",
"url": "file:///absolute/path/to/source.js",
"functions": []
}
],
"source-map-cache": {
"file:///absolute/path/to/source.js": {
"url": "./path-to-map.json",
"data": {
"version": 3,
"sources": [
"file:///absolute/path/to/original.js"
],
"names": [
"Foo",
"console",
"info"
],
"mappings": "MAAMA,IACJC,YAAaC",
"sourceRoot": "./"
},
"lineLengths": [
13,
62,
38,
27
]
}
}
} OPENSSL_CONF=file
Загрузить файл конфигурации OpenSSL при запуске. В числе прочего, это можно использовать для включения криптографии, соответствующей стандарту FIPS, если Node.js собран с ./configure --openssl-fips.
Если используется командная опция --openssl-config, переменная среды игнорируется.
SSL_CERT_DIR=dir
Если --use-openssl-ca включено, это переопределяет и задаёт каталог OpenSSL, содержащий доверенные сертификаты.
Обратите внимание, что если среда дочернего процесса не установлена явно, эта переменная среды будет унаследована любыми дочерними процессами, и если они используют OpenSSL, это может привести к тому, что они будут доверять тем же центрам сертификации, что и узел.
SSL_CERT_FILE=file
Если --use-openssl-ca включено, это переопределяет и задаёт файл OpenSSL, содержащий доверенные сертификаты.
Обратите внимание, что если среда дочернего процесса не установлена явно, эта переменная среды будет унаследована любыми дочерними процессами, и если они используют OpenSSL, это может привести к тому, что они будут доверять тем же центрам сертификации, что и узел.
UV_THREADPOOL_SIZE=size
Установить количество потоков, используемых в пуле потоков libuv, на size потоков.
Node.js использует асинхронные системные API по возможности, но в тех случаях, где они отсутствуют, используется пул потоков libuv для создания асинхронных API Node, основанных на синхронных системных API. Node.js API, использующие пул потоков:
- все
fsAPI, кроме API мониторинга файлов и тех, которые явно синхронны - асинхронные API криптографии, такие как
crypto.pbkdf2(),crypto.scrypt(),crypto.randomBytes(),crypto.randomFill(),crypto.generateKeyPair() dns.lookup()- все
zlibAPI, кроме тех, которые явно синхронны
Поскольку у пула потоков libuv фиксированный размер, это означает, что если по какой-либо причине любой из этих API будет работать долго, другие (на первый взгляд не связанные) API, выполняемые в пуле потоков libuv, будут испытывать ухудшение производительности. Чтобы смягчить эту проблему, одним из потенциальных решений является увеличение размера пула потоков libuv путём установки переменной среды 'UV_THREADPOOL_SIZE' на значение, большее, чем 4 (ее текущее значение по умолчанию). Более подробную информацию см. в документации пула потоков libuv.
Полезные параметры V8
V8 имеет собственный набор параметров командной строки. Любой параметр командной строки V8, предоставленный node, будет передан V8 для обработки. Параметры V8 не гарантируют стабильность. Сама команда V8 не считает их частью своего официального API и оставляет за собой право их изменять в любое время. Соответственно, они не покрываются гарантиями стабильности Node.js. Многие параметры V8 интересны только разработчикам V8. Несмотря на это, есть небольшой набор параметров V8, которые широко применяются в Node.js, и они документированы здесь:
--max-old-space-size=SIZE (в мегабайтах)
Устанавливает максимальный размер памяти секции старой памяти V8. По мере приближения использования памяти к пределу V8 будет тратить больше времени на сборку мусора, пытаясь освободить неиспользуемую память.
На машине с 2 ГБ оперативной памяти рассмотрите возможность установки этого значения на 1536 (1,5 ГБ), чтобы оставить некоторую память для других целей и избежать подкачки.
$ node --max-old-space-size=1536 index.js
© Joyent, Inc. and other Node contributors
Licensed under the MIT License.
Node.js is a trademark of Joyent, Inc. and is used with its permission.
We are not endorsed by or affiliated with Joyent.
https://nodejs.org/dist/latest-v12.x/docs/api/cli.html