Spec-Zone.ru › Node.js 12 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.js. Передаёт остальные аргументы в скрипт. Если до этого не указано имя файла скрипта или скрипт 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

Добавлена в: v12.19.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 равно mode, обращения к свойству приведут к исключению с кодом 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-import-meta-resolve

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

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

--experimental-json-modules

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

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

--experimental-loader=module

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

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

--experimental-modules

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

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

--experimental-policy

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

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

--experimental-repl-await

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

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

--experimental-specifier-resolution=mode

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

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

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

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

--experimental-vm-modules

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

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

--experimental-wasi-unstable-preview1

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

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

--experimental-wasm-modules

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

--force-context-aware

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

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

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

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

--http-parser=library

История
Версия Изменения
v12.22.0

Старый HTTP-парсер будет выводить предупреждение о устаревании.

v11.4.0

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

Выбирает библиотеку 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

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

Переопределяет значение по умолчанию для таймаута сокета сервера http, https и http2. Установка значения в 0 отключает таймаут сокета сервера. Если не указано, сокеты HTTP-сервера отключаются через 120 секунд (2 минуты). Программная установка таймаута имеет приоритет над значением, установленным с помощью этого флага.

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

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

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

--jitless

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

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

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

--max-http-header-size=size

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

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

--napi-modules

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

Этот параметр не выполняет никаких действий. Он сохранён для совместимости.

--no-deprecation

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

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

--no-force-async-hooks-checks

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

Отключает проверки в runtime для 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

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

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

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

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

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

История
Версия Изменения
v12.17.0

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

v12.0.0

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

v11.8.0

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

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

--report-filename=filename

История
Версия Изменения
v12.17.0

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

v12.0.0

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

v11.8.0

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

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

--report-on-fatalerror

История
Версия Изменения
v12.17.0

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

v12.0.0

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

v11.8.0

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

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

--report-on-signal

История
Версия Изменения
v12.17.0

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

v12.0.0

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

v11.8.0

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

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

--report-signal=signal

История
Версия Изменения
v12.17.0

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

v12.0.0

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

v11.8.0

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

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

--report-uncaught-exception

История
Версия Изменения
v12.17.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

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

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

--tls-max-v1.2

Добавлен в: v12.0.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

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

--tls-min-v1.1

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

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

--tls-min-v1.2

Добавлен в: v12.2.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-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

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

Выводит трассировку стека при каждом добровольном выходе из среды, т. е. при вызове process.exit().

--trace-sigint

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

Выводит трассировку стека при получении сигнала SIGINT.

--trace-sync-io

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

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

--trace-tls

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

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

--trace-uncaught

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

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

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

--trace-warnings

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

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

--track-heap-objects

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

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

--unhandled-rejections=mode

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

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

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

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

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

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

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

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

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

См. SSL_CERT_DIR и SSL_CERT_FILE.

--use-largepages=mode

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

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

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

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

--v8-options

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

Печать опций командной строки V8.

--v8-pool-size=num

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

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

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

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

--zero-fill-buffers

Добавлена в: 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

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

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

-i, --interactive

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

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

-p, --print "script"

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

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

v0.6.4

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

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

-r, --require module

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

Предварительная загрузка указанного модуля при запуске.

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

-v, --version

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

Печать версии node.

Переменные среды

NODE_DEBUG=module[,…]

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

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

NODE_DEBUG_NATIVE=module[,…]

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

NODE_DISABLE_COLORS=1

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

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

NODE_EXTRA_CA_CERTS=file

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

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

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

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

NODE_ICU_DATA=file

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

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

NODE_NO_WARNINGS=1

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

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

NODE_OPTIONS=options...

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

Список опций командной строки, разделенных пробелом. 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[:…]

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

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

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

NODE_PENDING_DEPRECATION=1

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

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

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

NODE_PENDING_PIPE_INSTANCES=instances

Устанавливает количество ожидающих обработчиков экземпляров канала при ожидании соединений сервером канала. Это ограничение только для Windows.

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_REPL_EXTERNAL_MODULE=file

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

Путь к модулю 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": []
    }
  ]
}

Кэш карт исходного кода

Уровень стабильности: 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

Добавлена в: 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 потоков.

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

  • все 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-v12.x/docs/api/cli.html

Spec-Zone.ru

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