Spec-Zone.ru › Node.js 14 LTS

Опции командной строки

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, см. документацию отладчика.

Параметры

История
Версия Изменения
v10.12.0

Теперь разрешены нижние подчеркивания вместо дефисов для параметров Node.js, помимо параметров V8.

Все параметры, включая параметры V8, позволяют разделять слова как дефисами (-) так и нижними подчеркиваниями (_). Например, --pending-deprecation эквивалентно --pending_deprecation.

Если параметр, принимающий одно значение (например, --max-http-header-size), передается более одного раза, используется последнее переданное значение. Параметры из командной строки имеют приоритет над параметрами, переданными через переменную среды NODE_OPTIONS.

-

Добавлен в: v8.0.0

Псевдоним для stdin. Аналогично использованию - в других утилитах командной строки, означающем, что скрипт читается из stdin, а остальные параметры передаются этому скрипту.

--

Добавлен в: v6.11.0

Указывает конец параметров Node. Передает оставшиеся аргументы скрипту. Если до этого не был указан имя файла скрипта или скрипт eval/print, то следующий аргумент используется как имя файла скрипта.

--abort-on-uncaught-exception

Добавлен в: v0.10.8

Прерывание вместо выхода приводит к генерации файла core для постобработки с использованием отладчика (например, lldb, gdb, и mdb).

Если этот флаг передан, поведение все равно можно настроить на не прерывание через process.setUncaughtExceptionCaptureCallback() (и через использование модуля domain, который его использует).

--completion-bash

Добавлен в: v10.12.0

Печать скрипта завершения bash для Node.js.

$ node --completion-bash > node_bash_completion
$ source node_bash_completion

--conditions=condition

Добавлен в: v14.9.0
Устойчивость: 1 - Экспериментальная

Включить экспериментальную поддержку пользовательских условий разрешения экспорта.

Разрешается любое количество пользовательских имен условий в виде строк.

Стандартные условия Node.js "node", "default", "import", и "require" будут всегда применяться, как определено.

--cpu-prof

Добавлен в: v12.0.0
Устойчивость: 1 - Экспериментальная

Запускает профилировщик 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

Добавлен в: v12.0.0
Устойчивость: 1 - Экспериментальная

Указывает каталог, в котором будут размещены профили CPU, сгенерированные --cpu-prof.

Значение по умолчанию определяется параметром командной строки --diagnostic-dir.

--cpu-prof-interval

Добавлен в: v12.2.0
Устойчивость: 1 - Экспериментальная

Указывает интервал выборки в микросекундах для профилей CPU, сгенерированных --cpu-prof. Значение по умолчанию 1000 микросекунд.

--cpu-prof-name

Добавлен в: v12.0.0
Устойчивость: 1 - Экспериментальная

Указывает имя файла профиля CPU, сгенерированного --cpu-prof.

--diagnostic-dir=directory

Устанавливает каталог для записи всех файлов диагностики. По умолчанию - текущий рабочий каталог.

Влияет на каталог вывода по умолчанию для:

  • --cpu-prof-dir
  • --heap-prof-dir
  • --redirect-warnings

--disable-proto=mode

Отключить свойство Object.prototype.__proto__. Если mode равно delete, свойство полностью удаляется. Если mode равно throw, доступ к свойству приводит к исключению с кодом ERR_PROTO_ACCESS.

--disallow-code-generation-from-strings

Добавлен в: v9.8.0

Заставляет встроенные языковые возможности, такие как eval и new Function, генерирующие код из строк, выбрасывать исключение вместо этого. Это не влияет на модуль Node.js vm.

--enable-fips

Добавлен в: v6.0.0

Включить криптографию, совместимую с FIPS, при запуске. (Требуется, чтобы Node.js был скомпилирован с ./configure --openssl-fips.)

--enable-source-maps

Добавлен в: v12.12.0
Устойчивость: 1 - Экспериментальная

Включить экспериментальную поддержку Source Map v3 для отслеживания стеков.

В настоящее время переопределение Error.prepareStackTrace игнорируется, когда установлен флаг --enable-source-maps.

--experimental-abortcontroller

Добавлен в: v14.17.0

Включить экспериментальную поддержку AbortController и AbortSignal.

--experimental-import-meta-resolve

Добавлен в: v13.9.0, v12.16.2

Включить экспериментальную поддержку import.meta.resolve().

--experimental-json-modules

Добавлен в: v12.9.0

Включить экспериментальную поддержку JSON для загрузчика ES Модулей.

--experimental-loader=module

Добавлен в: v9.0.0

Указать module пользовательского экспериментального загрузчика ECMAScript модулей. module может быть либо путем к файлу, либо именем ECMAScript модуля.

--experimental-modules

Добавлен в: v8.5.0

Включить последние экспериментальные возможности модулей (устарело).

--experimental-policy

Добавлен в: v11.8.0

Использовать указанный файл в качестве политики безопасности.

--experimental-repl-await

Добавлен в: v10.0.0

Включить экспериментальную поддержку ключевого слова await в REPL.

--experimental-specifier-resolution=mode

Добавлен в: v13.4.0, v12.16.0

Устанавливает алгоритм разрешения для разрешения спецификаторов ES модулей. Допустимые значения explicit и node.

По умолчанию explicit, что требует указания полного пути к модулю. Режим node включает поддержку необязательных расширений файлов и возможность импорта каталога, содержащего файл index.

См. настройка алгоритма разрешения спецификаторов ESM для примера использования.

--experimental-vm-modules

Добавлен в: v9.6.0

Включить экспериментальную поддержку ES Модулей в модуле vm.

--experimental-wasi-unstable-preview1

История
Версия Изменения
v13.6.0

изменено с --experimental-wasi-unstable-preview0 на --experimental-wasi-unstable-preview1.

v13.3.0, v12.16.0

Добавлен в: v13.3.0, v12.16.0

Включить экспериментальную поддержку WebAssembly System Interface (WASI).

--experimental-wasm-modules

Добавлен в: v12.3.0

Включить экспериментальную поддержку модулей WebAssembly.

--force-context-aware

Добавлен в: v12.12.0

Отключить загрузку нативных дополнений, которые не являются контекстно-ориентированными.

--force-fips

Добавлен в: v6.0.0

Принудительно включить криптографию, совместимую с FIPS, при запуске. (Не может быть отключено из кода скрипта.) (Требует тех же условий, что и --enable-fips.)

--frozen-intrinsics

Добавлен в: v11.12.0
Устойчивость: 1 - Экспериментальная

Включить экспериментальные замороженные внутренние функции, такие как Array и Object.

Поддержка в настоящее время предоставляется только для корневого контекста и не гарантируется, что global.Array является фактической ссылкой на внутреннюю функцию по умолчанию. Код может сломаться при использовании этого флага.

--require выполняется перед заморозкой внутренних функций, чтобы разрешить добавление полифиллов.

--heapsnapshot-signal=signal

Добавлен в: v12.0.0

Включает обработчик сигналов, который заставляет процесс 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

Добавлен в: v12.4.0
Стабильность: 1 - Экспериментальная

Запускает профилировщик кучи 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

Добавлена в: v12.4.0
Стабильность: 1 - Экспериментальная

Укажите каталог, в который будут помещены профили кучи, сгенерированные --heap-prof.

Значение по умолчанию контролируется командной опцией --diagnostic-dir.

--heap-prof-interval

Добавлена в: v12.4.0
Стабильность: 1 - Экспериментальная

Укажите средний интервал выборки в байтах для профилей кучи, генерируемых --heap-prof . Значение по умолчанию — 512 * 1024 байт.

--heap-prof-name

Добавлена в: v12.4.0
Стабильность: 1 - Экспериментальная

Укажите имя файла профиля кучи, сгенерированного --heap-prof.

--icu-data-dir=file

Добавлена в: v0.11.15

Укажите путь к загрузке данных ICU. (Переопределяет NODE_ICU_DATA.)

--input-type=type

Добавлена в: v12.0.0

Это настраивает Node.js для интерпретации входных строк как CommonJS или как модули ES. Ввод строк осуществляется через --eval, --print, или STDIN.

Допустимые значения — "commonjs" и "module" Значение по умолчанию — "commonjs".

--inspect-brk[=[host:]port]

Добавлена в: v7.6.0

Активировать инспектор на host:port и прервать выполнение по началу пользовательского скрипта. По умолчанию host:port равно 127.0.0.1:9229.

--inspect-port=[host:]port

Добавлена в: v7.6.0

Установите host:port для использования при активации инспектора. Полезно при активации инспектора с помощью отправки сигнала SIGUSR1.

Хост по умолчанию — 127.0.0.1.

Ниже см. предупреждение о безопасности относительно использования параметра host.

--inspect[=[host:]port]

Добавлена в: v6.3.0

Активировать инспектор на host:port. Значение по умолчанию — 127.0.0.1:9229.

Интеграция V8 inspector позволяет инструментам, таким как 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

Добавлена в: v13.4.0, v12.15.0, v10.19.0

Использовать небезопасный HTTP-парсер, принимающий недопустимые HTTP-заголовки. Это может обеспечить межотладочную совместимость с нестандартными реализациями HTTP. Также это может позволить атаку request smuggling и другие атаки HTTP, основанные на принятии невалидных заголовков. Избегайте использования этой опции.

--jitless

Добавлена в: v12.0.0

Отключить динамическое выделение исполняемой памяти. Это может потребоваться на некоторых платформах по соображениям безопасности. Также может уменьшить вектор атаки на других платформах, но может иметь серьёзное влияние на производительность.

Этот флаг унаследован от V8 и может измениться в верхнем потоке. Он может быть удалён в релизе без изменения номерной версии.

--max-http-header-size=size

История
Версия Изменения
v14.0.0

Изменение максимального размера заголовков HTTP по умолчанию с 8 КБ до 16 КБ.

v11.6.0, v10.15.0

Добавлена в: v11.6.0, v10.15.0

Укажите максимальный размер HTTP-заголовков в байтах. По умолчанию 16 КБ.

--napi-modules

Добавлена в: v7.10.0

Эта опция является бесполезной. Она сохраняется для совместимости.

--no-deprecation

Добавлена в: v0.8.0

Отключить предупреждения об устаревании API.

--no-force-async-hooks-checks

Добавлена в: v9.0.0

Отключает проверки async_hooks во время выполнения. Они всё равно будут включены динамически, когда async_hooks включено.

--no-warnings

Добавлена в: v6.0.0

Отключить все предупреждения процесса (включая предупреждения об устаревших API).

--openssl-config=file

Добавлена в: v6.9.0

Загрузить файл конфигурации OpenSSL при запуске. В числе прочего, это можно использовать для включения криптографии FIPS, если Node.js был скомпилирован с ./configure --openssl-fips.

--pending-deprecation

Добавлена в: v8.0.0

Выводить предупреждения о предстоящем устаревании API.

Предупреждения о предстоящем устаревании, в целом, идентичны предупреждениям о текущем устаревании, за исключением того, что они отключены по умолчанию и не будут выводиться, если не установлен командный флаг --pending-deprecation, или переменная окружения NODE_PENDING_DEPRECATION=1. Предупреждения о предстоящем устаревании используются для обеспечения механизма выборочного «предупреждения» разработчиков, который может быть использован для обнаружения использования устаревшего API.

--policy-integrity=sri

Добавлена в: v12.7.0
Стабильность: 1 - Экспериментальная

Инструктирует Node.js генерировать ошибку перед запуском любого кода, если у политики отсутствует указанная целостность. Ожидается строка Subresource Integrity в качестве параметра.

--preserve-symlinks

Добавлена в: v6.3.0

Инструктирует загрузчик модулей сохранять символические ссылки при разрешении и кэшировании модулей.

По умолчанию, когда 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 использовать путь символической ссылки для модулей вместо реального пути, позволяя находить символически связанные зависимости peer.

Обратите внимание, однако, что использование --preserve-symlinks может иметь другие побочные эффекты. В частности, символически связанные нативные модули могут не загружаться, если они связаны из более чем одного местоположения в дереве зависимостей (Node.js будет видеть их как два отдельных модуля и попытается загрузить модуль несколько раз, что приведёт к исключению).

Флаг --preserve-symlinks не применяется к главному модулю, что позволяет node --preserve-symlinks node_module/.bin/<foo> работать. Для применения того же поведения для главного модуля, также используйте --preserve-symlinks-main.

--preserve-symlinks-main

Добавлена в: v10.2.0

Инструктирует загрузчик модулей сохранять символические ссылки при разрешении и кэшировании главного модуля (require.main).

Этот флаг существует для того, чтобы главный модуль мог быть включён в такое же поведение, которое --preserve-symlinks предоставляет для всех других импортов; однако, для обратной совместимости со старыми версиями Node.js это отдельные флаги.

--preserve-symlinks-main не подразумевает --preserve-symlinks; используйте --preserve-symlinks-main дополнительно к --preserve-symlinks когда нежелательно следовать символическим ссылкам перед разрешением относительных путей.

См. --preserve-symlinks для получения дополнительной информации.

--prof

Добавлена в: v2.0.0

Генерировать вывод профилировщика V8.

--prof-process

Добавлена в: v5.2.0

Обработать вывод профилировщика V8, сгенерированный с помощью опции V8 --prof.

--redirect-warnings=file

Добавлена в: v8.0.0

Записывать предупреждения процесса в указанный файл вместо вывода в stderr. Файл будет создан, если он не существует, и будет добавлен в конец, если он уже существует. Если при попытке записать предупреждение в файл произойдет ошибка, предупреждение будет выведено в stderr.

Имя file может быть абсолютным путем. Если это не так, то каталог по умолчанию, в который он будет записан, контролируется параметром командной строки --diagnostic-dir.

--report-compact

Добавлен в: v13.12.0

Записывать отчеты в компактном формате, в формате JSON одной строки, более удобном для систем обработки журналов, чем стандартный многострочный формат, предназначенный для просмотра человеком.

--report-dir=directory, report-directory=directory

История
Версия Изменения
v13.12.0

Этот параметр больше не является экспериментальным.

v12.0.0

Изменено с --diagnostic-report-directory на --report-directory.

v11.8.0

Добавлен в: v11.8.0

Местоположение, в котором будет сгенерирован отчет.

--report-filename=filename

История
Версия Изменения
v13.12.0

Этот параметр больше не является экспериментальным.

v12.0.0

изменено с --diagnostic-report-filename на --report-filename.

v11.8.0

Добавлен в: v11.8.0

Имя файла, в который будет записан отчет.

--report-on-fatalerror

История
Версия Изменения
v14.0.0

Этот параметр больше не является экспериментальным.

v12.0.0

изменено с --diagnostic-report-on-fatalerror на --report-on-fatalerror.

v11.8.0

Добавлен в: v11.8.0

Включает создание отчета при возникновении фатальных ошибок (внутренних ошибок в среде выполнения Node.js, таких как недостаток памяти), приводящих к завершению приложения. Полезно для проверки различных диагностических данных, таких как куча, стек, состояние цикла событий, использование ресурсов и т. д., чтобы понять причину фатальной ошибки.

--report-on-signal

История
Версия Изменения
v13.12.0

Этот параметр больше не является экспериментальным.

v12.0.0

изменено с --diagnostic-report-on-signal на --report-on-signal.

v11.8.0

Добавлен в: v11.8.0

Включает создание отчета при получении указанного (или предопределенного) сигнала запущенному процессу Node.js. Сигнал для запуска отчета задается через --report-signal.

--report-signal=signal

История
Версия Изменения
v13.12.0

Этот параметр больше не является экспериментальным.

v12.0.0

изменено с --diagnostic-report-signal на --report-signal.

v11.8.0

Добавлен в: v11.8.0

Устанавливает или сбрасывает сигнал для создания отчета (не поддерживается в Windows). Сигнал по умолчанию SIGUSR2.

--report-uncaught-exception

История
Версия Изменения
v14.0.0

Этот параметр больше не является экспериментальным.

v12.0.0

изменено с --diagnostic-report-uncaught-exception на --report-uncaught-exception.

v11.8.0

Добавлен в: v11.8.0

Включает создание отчета при возникновении необработанных исключений. Полезно для проверки стека JavaScript в сочетании с нативным стеком и другими данными среды выполнения.

--throw-deprecation

Добавлен в: v0.11.14

Выбрасывать ошибки для устаревших функций.

--title=title

Добавлен в: v10.7.0

Установить process.title при запуске.

--tls-cipher-list=list

Добавлен в: v4.0.0

Указать альтернативный список шифров TLS по умолчанию. Требуется, чтобы Node.js был скомпилирован с поддержкой криптографии (по умолчанию).

--tls-keylog=file

Добавлен в: v13.2.0, v12.16.0

Записывать данные ключей TLS в файл. Данные ключей в формате NSS SSLKEYLOGFILE и могут быть использованы программным обеспечением (например, Wireshark) для расшифровки трафика TLS.

--tls-max-v1.2

Добавлен в: v12.0.0, v10.20.0

Установить tls.DEFAULT_MAX_VERSION в 'TLSv1.2'. Используется для отключения поддержки TLSv1.3.

--tls-max-v1.3

Добавлен в: v12.0.0

Установить значение по умолчанию для tls.DEFAULT_MAX_VERSION в 'TLSv1.3'. Используется для включения поддержки TLSv1.3.

--tls-min-v1.0

Добавлен в: v12.0.0, v10.20.0

Установить значение по умолчанию для tls.DEFAULT_MIN_VERSION в 'TLSv1'. Используется для совместимости со старыми клиентами или серверами TLS.

--tls-min-v1.1

Добавлен в: v12.0.0, v10.20.0

Установить значение по умолчанию для tls.DEFAULT_MIN_VERSION в 'TLSv1.1'. Используется для совместимости со старыми клиентами или серверами TLS.

--tls-min-v1.2

Добавлен в: v12.2.0, v10.20.0

Установить значение по умолчанию для tls.DEFAULT_MIN_VERSION в 'TLSv1.2'. Это значение по умолчанию для 12.x и более поздних версий, но параметр поддерживается для совместимости со старыми версиями Node.js.

--tls-min-v1.3

Добавлен в: v12.0.0

Установить значение по умолчанию для tls.DEFAULT_MIN_VERSION в 'TLSv1.3'. Используется для отключения поддержки TLSv1.2, которая менее безопасна, чем TLSv1.3.

--trace-atomics-wait

Добавлен в: v14.3.0

Выводить краткие сводки вызовов Atomics.wait() в stderr. Вывод может выглядеть так:

(node:15701) [Thread 0] Atomics.wait(&lt;address> + 0, 1, inf) started
(node:15701) [Thread 0] Atomics.wait(&lt;address> + 0, 1, inf) did not wait because the values mismatched
(node:15701) [Thread 0] Atomics.wait(&lt;address> + 0, 0, 10) started
(node:15701) [Thread 0] Atomics.wait(&lt;address> + 0, 0, 10) timed out
(node:15701) [Thread 0] Atomics.wait(&lt;address> + 4, 0, inf) started
(node:15701) [Thread 1] Atomics.wait(&lt;address> + 4, -1, inf) started
(node:15701) [Thread 0] Atomics.wait(&lt;address> + 4, 0, inf) was woken up by another thread
(node:15701) [Thread 1] Atomics.wait(&lt;address> + 4, -1, inf) was woken up by another thread

Поля здесь соответствуют:

  • Идентификатор потока, заданный worker_threads.threadId
  • Базовый адрес SharedArrayBuffer в вопросе, а также смещение байтов, соответствующее индексу, переданному в Atomics.wait()
  • Ожидаемое значение, переданное в Atomics.wait()
  • Таймаут, переданный в Atomics.wait

--trace-deprecation

Добавлен в: v0.8.0

Выводить стеки вызовов для устаревших функций.

--trace-event-categories

Добавлен в: v7.7.0

Список категорий, разделенных запятыми, которые должны быть отслежены при включении отслеживания событий трассировки с помощью --trace-events-enabled.

--trace-event-file-pattern

Добавлен в: v9.8.0

Шаблонная строка, определяющая путь к файлу для данных событий трассировки, поддерживает ${rotation} и ${pid}.

--trace-events-enabled

Добавлен в: v7.7.0

Включает сбор информации об отслеживании событий трассировки.

--trace-exit

Добавлен в: v13.5.0, v12.16.0

Выводит стек вызовов всякий раз, когда среда выходит из строя в активном режиме, например, при вызове process.exit().

--trace-sigint

Добавлен в: v13.9.0

Выводит стек вызовов при SIGINT.

--trace-sync-io

Добавлен в: v2.1.0

Выводит стек вызовов всякий раз, когда обнаруживается синхронное ввод-вывод после первого цикла цикла событий.

--trace-tls

Добавлен в: v12.2.0

Выводит информацию о трассировке пакетов TLS в stderr. Это можно использовать для отладки проблем с подключением TLS.

--trace-uncaught

Добавлен в: v13.1.0

Выводить стеки вызовов для необработанных исключений; как правило, выводится стек вызовов, связанный с созданием Error , в то время как это заставляет Node.js также выводить стек вызовов, связанный с выбрасыванием значения (которое не обязательно должно быть экземпляром Error).

Включение этого параметра может отрицательно повлиять на поведение сборки мусора.

--trace-warnings

Добавлен в: v6.0.0

Выводить стеки вызовов для предупреждений процесса (включая устаревшие функции).

--track-heap-objects

Добавлен в: v2.4.0

Отслеживать выделения объектов кучи для снимков кучи.

--unhandled-rejections=mode

Добавлен в: v12.0.0, v10.17.0

По умолчанию все необработанные отклонения вызывают предупреждение, а также предупреждение об устаревших значениях для первого необработанного отклонения в случае, если нет обработчика unhandledRejection.

Использование этого флага позволяет изменить поведение при возникновении необработанного отклонения. Можно выбрать один из следующих режимов:

  • throw: Вывести unhandledRejection. Если этот обработчик не задан, поднять необработанное отклонение как исключение.
  • strict: Поднять необработанное отклонение как исключение.
  • warn: Всегда выводить предупреждение, независимо от того, установлен ли обработчик unhandledRejection или нет, но не выводить предупреждение о устаревании.
  • warn-with-error-code: Вывести unhandledRejection. Если этот обработчик не установлен, вывести предупреждение и установить код завершения процесса в 1.
  • none: Заглушить все предупреждения.

--use-bundled-ca, --use-openssl-ca

Added in: v6.11.0

Использовать встроенный хранилище сертификатов Mozilla, предоставленный текущей версией Node.js, или использовать хранилище сертификатов OpenSSL по умолчанию. Хранилище по умолчанию выбирается во время сборки.

Встроенное хранилище сертификатов, предоставленное Node.js, представляет собой снимок хранилища сертификатов Mozilla, который фиксируется во время выпуска. Оно одинаково на всех поддерживаемых платформах.

Использование хранилища OpenSSL позволяет вносить внешние изменения в хранилище. Для большинства дистрибутивов Linux и BSD это хранилище поддерживается разработчиками дистрибутива и системными администраторами. Расположение хранилища сертификатов OpenSSL зависит от конфигурации библиотеки OpenSSL, но это можно изменить во время выполнения, используя переменные окружения.

См. SSL_CERT_DIR и SSL_CERT_FILE.

--use-largepages=mode

Added in: v13.6.0

Переназначить статический код Node.js на страницы большой памяти при запуске. Если это поддерживается на целевой системе, это заставит статический код Node.js быть перемещён на страницы 2 МБ вместо 4 КБ.

Следующие значения допустимы для mode:

  • off: Картирование не будет выполнено. Это значение по умолчанию.
  • on: Если поддерживается операционной системой, будет попытка картирования. Неудача при картировании будет проигнорирована, и сообщение будет выведено в стандартный поток ошибок.
  • silent: Если поддерживается операционной системой, будет попытка картирования. Неудача при картировании будет проигнорирована и не будет сообщена.

--v8-options

Added in: v0.1.3

Вывести параметры командной строки V8.

--v8-pool-size=num

Added in: v5.10.0

Установить размер пула потоков V8, который будет использоваться для распределения фоновых задач.

Если установлено значение 0, то V8 выберет подходящий размер пула потоков на основе количества активных процессоров.

Если предоставленное значение больше максимального значения V8, то будет выбрано максимальное значение.

--zero-fill-buffers

Added in: v6.0.0

Автоматически заполняет нулями все вновь созданные экземпляры Buffer и SlowBuffer.

-c, --check

История
Версия Изменения
v10.0.0

Опция --require теперь поддерживается при проверке файла.

v5.0.0, v4.2.0

Добавлен в: v5.0.0, v4.2.0

Проверка синтаксиса скрипта без выполнения.

-e, --eval "script"

История
Версия Изменения
v5.11.0

Встроенные библиотеки теперь доступны как предопределенные переменные.

v0.5.2

Добавлен в: v0.5.2

Вычислить следующий аргумент как JavaScript. Модули, которые предопределены в REPL, также могут быть использованы в script.

В Windows, используя cmd.exe, одиночная кавычка не будет работать правильно, так как она распознаёт только двойные " для цитирования. В PowerShell или Git bash, оба ' и " могут быть использованы.

-h, --help

Added in: v0.1.3

Вывести параметры командной строки node. Вывод этой опции менее подробный, чем в этом документе.

-i, --interactive

Added in: v0.7.7

Открывает REPL даже если стандартный ввод не является терминалом.

-p, --print "script"

История
Версия Изменения
v5.11.0

Встроенные библиотеки теперь доступны как предопределенные переменные.

v0.6.4

Добавлен в: v0.6.4

Идентично -e но выводит результат.

-r, --require module

Added in: v1.6.0

Загрузить указанный модуль при запуске.

Следует правилам разрешения модулей require(). module может быть либо путем к файлу, либо именем модуля node.

Поддерживаются только модули CommonJS. Попытка предварительной загрузки модуля ES6 с использованием --require завершится ошибкой.

-v, --version

Added in: v0.1.3

Вывести версию node.

Переменные окружения

NODE_DEBUG=module[,…]

Added in: v0.1.32

Список, разделённый символом «','», основных модулей, которые должны выводить отладочную информацию.

NODE_DEBUG_NATIVE=module[,…]

Список, разделённый символом «','», основных модулей C++, которые должны выводить отладочную информацию.

NODE_DISABLE_COLORS=1

Added in: v0.3.0

При установке этой переменной цвета не будут использоваться в REPL.

NODE_EXTRA_CA_CERTS=file

Added in: v7.3.0

При установке этой переменной известные корневые сертификационные центры (например, VeriSign) будут дополнены дополнительными сертификатами в file. Файл должен содержать один или несколько доверенных сертификатов в формате PEM. Сообщение будет выведено (один раз) с помощью process.emitWarning(), если файл отсутствует или имеет неправильный формат, но любые другие ошибки будут проигнорированы.

Ни известные, ни дополнительные сертификаты не используются, если свойство опций ca явно указано для TLS- или HTTPS-клиента или сервера.

Эта переменная окружения игнорируется, когда node запускается как setuid root или имеет установленные системные возможности Linux.

Переменная окружения NODE_EXTRA_CA_CERTS считывается только при первом запуске процесса Node.js. Изменение значения во время выполнения с помощью process.env.NODE_EXTRA_CA_CERTS не повлияет на текущий процесс.

NODE_ICU_DATA=file

Added in: v0.11.15

Путь к данным для ICU (объект Intl). Будет расширять данные, связанные при компиляции с поддержкой small-icu.

NODE_NO_WARNINGS=1

Added in: v6.11.0

При установке в значение 1, предупреждения процесса будут отключены.

NODE_OPTIONS=options...

Added in: v8.0.0

Список командных опций, разделённых пробелом. options... интерпретируются перед командными опциями, поэтому командные опции будут перезаписывать или комбинировать всё после чего-либо в options.... Node.js завершится с ошибкой, если будет использована опция, которая не разрешена в среде, например -p или файл скрипта.

Если значение опции содержит пробел, его можно экранировать с помощью двойных кавычек:

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-abortcontroller
  • --experimental-import-meta-resolve
  • --experimental-json-modules
  • --experimental-loader
  • --experimental-modules
  • --experimental-policy
  • --experimental-repl-await
  • --experimental-specifier-resolution
  • --experimental-top-level-await
  • --experimental-vm-modules
  • --experimental-wasi-unstable-preview1
  • --experimental-wasm-modules
  • --force-context-aware
  • --force-fips
  • --frozen-intrinsics
  • --heapsnapshot-signal
  • --http-parser
  • --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-atomics-wait
  • --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[:…]

Added in: v0.1.32

Список директорий, разделённых символом «':'», предваряющих путь поиска модулей.

В Windows это список, разделённый символом «';'».

NODE_PENDING_DEPRECATION=1

Added in: v8.0.0

При установке в значение 1, генерировать предупреждения о предстоящей устарелости.

Предупреждения о предстоящей устарелости в целом идентичны предупреждениям о устарелости во время выполнения, за исключением того, что они по умолчанию выключены и не будут генерироваться, если не задан флаг командной строки --pending-deprecation или переменная среды NODE_PENDING_DEPRECATION=1. Предупреждения о предстоящей устарелости используются для предоставления своеобразного механизма «предупреждения» для разработчиков, чтобы они могли обнаруживать устаревшее использование API.

NODE_PENDING_PIPE_INSTANCES=instances

Устанавливает количество ожидаемых дескрипторов (handle) экземпляров канала при ожидании подключений к серверу канала. Это значение применимо только к Windows.

NODE_PRESERVE_SYMLINKS=1

Added in: v7.1.0

При установке в значение 1, загрузитель модулей сохранит символические ссылки при разрешении и кешировании модулей.

NODE_REDIRECT_WARNINGS=file

Added in: v8.0.0

При установке, предупреждения процесса будут выводиться в указанный файл вместо вывода в stderr. Файл будет создан, если он не существует, и будет добавлен в конец, если существует. Если при попытке записать предупреждение в файл возникнет ошибка, предупреждение будет выведено в stderr вместо этого. Это эквивалентно использованию флага командной строки --redirect-warnings=file.

NODE_REPL_HISTORY=file

Added in: v3.0.0

Путь к файлу, используемому для сохранения истории REPL. Путь по умолчанию — ~/.node_repl_history, но он перезаписывается этой переменной. Установка значения в пустую строку ('' или ' ') отключает постоянную историю REPL.

NODE_REPL_EXTERNAL_MODULE=file

Added in: v13.0.0, v12.16.0

Путь к модулю Node.js, который будет загружен вместо встроенного REPL. Переопределение этого значения на пустую строку ('') использует встроенный REPL.

NODE_SKIP_PLATFORM_CHECK=value

Added in: v14.5.0

Если value равно '1', проверка поддерживаемой платформы пропускается во время запуска Node.js. Node.js может работать неправильно. Любые проблемы, возникающие на неподдерживаемых платформах, не будут исправлены.

NODE_TLS_REJECT_UNAUTHORIZED=value

Если value равно '0', проверка сертификатов отключена для TLS-соединений. Это делает TLS, и HTTPS, небезопасным. Использование этой переменной окружения настоятельно не рекомендуется.

NODE_V8_COVERAGE=dir

При установке, Node.js начнёт выводить данные о покрытии кода JavaScript V8 и данные карты исходного кода в указанную директорию (информация о покрытии записывается в файлы JSON с префиксом coverage).

NODE_V8_COVERAGE автоматически распространяется на дочерние процессы, упрощая настройку приложений, вызывающих функции child_process.spawn() семейства. NODE_V8_COVERAGE можно установить в пустую строку, чтобы предотвратить распространение.

Вывод покрытия

Покрытие выводится как массив объектов ScriptCoverage по ключевому слову result на верхнем уровне:

{
  "result": [
    {
      "scriptId": "67",
      "url": "internal/tty.js",
      "functions": []
    }
  ]
}
Кэш карты исходного кода
Уровень стабильности: 1 - Экспериментально

Если найдены, данные карты исходного кода добавляются к ключевому слову 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

Added in: v6.11.0

Загрузить конфигурационный файл OpenSSL при запуске. Среди прочего, это может быть использовано для включения криптографии, соответствующей стандарту FIPS, если Node.js построен с ./configure --openssl-fips.

Если используется опция командной строки --openssl-config, переменная окружения игнорируется.

SSL_CERT_DIR=dir

Добавлен в: v7.7.0

Если --use-openssl-ca включено, это переопределяет и устанавливает директорию OpenSSL, содержащую доверенные сертификаты.

Обратите внимание, что если среда дочерних процессов не задана явно, эта переменная окружения будет унаследована дочерними процессами, и если они используют OpenSSL, это может привести к тому, что они будут доверять тем же ЦС, что и узел.

SSL_CERT_FILE=file

Добавлен в: v7.7.0

Если --use-openssl-ca включено, это переопределяет и устанавливает файл OpenSSL, содержащий доверенные сертификаты.

Обратите внимание, что если среда дочерних процессов не задана явно, эта переменная окружения будет унаследована дочерними процессами, и если они используют OpenSSL, это может привести к тому, что они будут доверять тем же ЦС, что и узел.

UV_THREADPOOL_SIZE=size

Установите количество потоков, используемых в пуле потоков libuv, на size потоков.

Асинхронные системные API используются Node.js по возможности, но там, где они отсутствуют, используется пул потоков libuv для создания асинхронных API узла на основе синхронных системных API. API Node.js, использующие пул потоков:

  • все fs API, кроме API наблюдателей за файлами и тех, которые явно синхронны
  • асинхронные криптографические API, такие как crypto.pbkdf2(), crypto.scrypt(), crypto.randomBytes(), crypto.randomFill(), crypto.generateKeyPair()
  • dns.lookup()
  • все zlib API, кроме тех, которые явно синхронны

Поскольку пул потоков 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-v14.x/docs/api/cli.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API