Spec-Zone.ru › Node.js 10 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.

-

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

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

--

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

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

--abort-on-uncaught-exception

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

Прерывание вместо выхода приводит к созданию файла 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

--enable-fips

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

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

--experimental-modules

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

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

--experimental-repl-await

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

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

--experimental-vm-modules

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

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

--experimental-worker

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

Включить экспериментальные рабочие потоки, используя модуль worker_threads.

--force-fips

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

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

--icu-data-dir=file

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

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

--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 инспектора позволяет таким инструментам, как Chrome DevTools и IDE, отлаживать и профилировать экземпляры Node.js. Инструменты подключаются к экземплярам Node.js через TCP-порт и общаются с использованием Протокола Chrome DevTools.

Предупреждение: привязка инспектора к сочетанию публичного IP-адреса и порта небезопасна

Привязка инспектора к публичному IP-адресу (включая 0.0.0.0) с открытым портом небезопасна, поскольку это позволяет внешним хостам подключаться к инспектору и выполнять атаку удаленного выполнения кода .

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

Более конкретно, --inspect=0.0.0.0 небезопасен, если порт (9229 по умолчанию) не защищен брандмауэром.

См. раздел последствия для безопасности отладки для получения дополнительной информации.

--loader=file

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

Указать file пользовательского экспериментального загрузчика модулей ECMAScript.

--insecure-http-parser

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

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

--max-http-header-size=size

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

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

--napi-modules

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

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

--no-deprecation

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

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

--no-force-async-hooks-checks

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

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

--no-warnings

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

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

--openssl-config=file

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

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

--pending-deprecation

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

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

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

--preserve-symlinks

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

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

По умолчанию, когда Node.js загружает модуль из пути, символически связанного с другим местоположением на диске, Node.js будет дезактивировать ссылку и использовать фактический «полный путь» модуля на диске как идентификатор и как корневой путь для поиска других зависимых модулей. В большинстве случаев такое поведение приемлемо. Однако при использовании символических ссылок на зависимые модули, как показано в примере ниже, стандартное поведение вызывает исключение, если moduleA пытается загрузить moduleB как зависимость:

{appDir}
 ├── app
 │   ├── index.js
 │   └── node_modules
 │       ├── moduleA -> {appDir}/moduleA
 │       └── moduleB
 │           ├── index.js
 │           └── package.json
 └── moduleA
     ├── index.js
     └── package.json

Флаг командной строки --preserve-symlinks инструктирует Node.js использовать путь символической ссылки для модулей вместо полного пути, позволяя находить зависимые модули, на которые указывает символическая ссылка.

Однако использование --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.

--throw-deprecation

Added in: v0.11.14

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

--title=title

Added in: v10.7.0

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

--tls-cipher-list=list

Added in: v4.0.0

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

--tls-max-v1.2

Added in: v10.20.0

Ничего не делает, [tls.DEFAULT_MAX_VERSION][] всегда 'TLSv1.2'. Существует для совместимости с Node.js 11.x и выше.

--tls-min-v1.0

Added in: v10.20.0

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

--tls-min-v1.1

Added in: v10.20.0

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

--tls-min-v1.2

Added in: v10.20.0

Установить значение по умолчанию [tls.DEFAULT_MIN_VERSION][] на 'TLSv1.2'. Используйте это для отключения поддержки более ранних версий TLS, которые менее безопасны.

--trace-deprecation

Added in: v0.8.0

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

--trace-event-categories

Added in: v7.7.0

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

--trace-event-file-pattern

Added in: v9.8.0

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

--trace-events-enabled

Added in: v7.7.0

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

--trace-sync-io

Added in: v2.1.0

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

--trace-warnings

Added in: v6.0.0

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

--track-heap-objects

Added in: v2.4.0

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

--unhandled-rejections=mode

Added in: v10.17.0

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

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

  • strict: Отобразить необработанное отклонение как исключение.
  • warn: Всегда выводить предупреждение, независимо от того, установлен ли обработчик unhandledRejection, но не выводить предупреждение об устаревших функциях.
  • none: Отключить все предупреждения.

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

Added in: v6.11.0

Использовать встроенный магазин сертификатов Mozilla CA, предоставленный текущей версией Node.js, или использовать стандартный магазин сертификатов CA OpenSSL. Стандартный магазин выбирается во время компиляции.

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

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

См. SSL_CERT_DIR и SSL_CERT_FILE.

--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

History
Version Changes
v10.0.0

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

v5.0.0, v4.2.0

Added in: v5.0.0, v4.2.0

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

-e, --eval "script"

History
Version Changes
v5.11.0

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

v0.5.2

Added in: 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, даже если stdin не выглядит как терминал.

-p, --print "script"

History
Version Changes
v5.11.0

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

v0.6.4

Added in: v0.6.4

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

-r, --require module

Added in: v1.6.0

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

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

-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

Если установлено 1, цвета не будут использоваться в REPL.

NODE_EXTRA_CA_CERTS=file

Added in: v7.3.0

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

Обратите внимание, что ни общеизвестные, ни дополнительные сертификаты не используются, когда свойство опций ca явно указано для клиента или сервера TLS или HTTPS.

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

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... интерпретируются так, как если бы они были указаны в командной строке до фактической командной строки (поэтому они могут быть переопределены). Node.js завершит работу с ошибкой, если будет использоваться опция, которая не разрешена в среде, например -p или файл скрипта.

Если значение опции содержит пробел (например, путь, указанный в --require), он должен быть экранирован двойными кавычками. Например:

--require "./my path/file.js"

Разрешенные опции Node.js:

  • --enable-fips
  • --experimental-modules
  • --experimental-repl-await
  • --experimental-vm-modules
  • --experimental-worker
  • --force-fips
  • --icu-data-dir
  • --insecure-http-parser
  • --inspect
  • --inspect-brk
  • --inspect-port
  • --loader
  • --max-http-header-size
  • --napi-modules
  • --no-deprecation
  • --no-force-async-hooks-checks
  • --no-warnings
  • --openssl-config
  • --pending-deprecation
  • --redirect-warnings
  • --require, -r
  • --throw-deprecation
  • --title
  • --tls-cipher-list
  • --trace-deprecation
  • --trace-event-categories
  • --trace-event-file-pattern
  • --trace-events-enabled
  • --trace-sync-io
  • --trace-warnings
  • --track-heap-objects
  • --unhandled-rejections
  • --use-bundled-ca
  • --use-openssl-ca
  • --v8-pool-size
  • --zero-fill-buffers

Допустимые параметры V8:

  • --abort-on-uncaught-exception
  • --max-old-space-size
  • --perf-basic-prof
  • --perf-prof
  • --stack-trace-limit

NODE_PATH=path[:…]

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

Список каталогов, разделённых символом ':', добавляемых в начало пути поиска модулей.

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

NODE_PENDING_DEPRECATION=1

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

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

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

NODE_PRESERVE_SYMLINKS=1

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

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

NODE_REDIRECT_WARNINGS=file

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

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

NODE_REPL_HISTORY=file

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

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

NODE_TLS_REJECT_UNAUTHORIZED=value

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

NODE_V8_COVERAGE=dir

При установке, Node.js начнёт выводить V8 JavaScript покрытие кода в указанный каталог. Покрытие выводится как массив объектов ScriptCoverage:

{
  "result": [
    {
      "scriptId": "67",
      "url": "internal/tty.js",
      "functions": []
    }
  ]
}

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

В настоящее время покрытие собирается только в главном потоке и не будет выводиться для кода, выполняемого рабочими потоками.

OPENSSL_CONF=file

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

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

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

SSL_CERT_DIR=dir

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

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

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

SSL_CERT_FILE=file

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

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

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

UV_THREADPOOL_SIZE=size

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

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

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

Поскольку пул потоков libuv имеет фиксированный размер, это означает, что если по какой-либо причине любой из этих API выполняется долго, другие (предположительно не связанные) API, работающие в пуле потоков libuv, будут испытывать снижение производительности. Для решения этой проблемы одним из возможных решений является увеличение размера пула потоков libuv, установив переменную среды 'UV_THREADPOOL_SIZE' на значение больше, чем 4 (ее текущее значение по умолчанию). Более подробная информация доступна в документации по пулу потоков libuv.

© 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-v10.x/docs/api/cli.html

Spec-Zone.ru

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