Spec-Zone.ru › Node.js 18 LTS

Командная строка API

Node.js поставляется с различными параметрами командной строки. Эти параметры предоставляют встроенные средства отладки, несколько способов выполнения скриптов и другие полезные параметры выполнения.

Чтобы просмотреть эту документацию как страницу руководства в терминале, выполните man node.

Краткое описание

node [options] [V8 options] [<program-entry-point> | -e "script" | -] [--] [arguments]

node inspect [<program-entry-point> | -e "script" | <host>:<port>] …

node --v8-options

Выполнение без аргументов запускает REPL.

Для получения дополнительной информации о node inspect, см. документацию по отладчику.

Точка входа в программу

Точка входа в программу — это строка-спецификатор. Если строка не является абсолютным путем, она разрешается как относительный путь от текущей рабочей директории. Затем этот путь разрешается загрузчиком модулей CommonJS. Если соответствующий файл не найден, генерируется ошибка.

Если файл найден, его путь будет передан загрузчику модулей ECMAScript ECMAScript в следующих случаях:

  • Программа была запущена с флагом командной строки, который принудительно загружает точку входа с помощью загрузчика модулей ECMAScript.
  • Файл имеет расширение .mjs.
  • Файл не имеет расширения .cjs, и ближайший родительский файл package.json содержит верхнеуровневое поле "type" со значением "module".

В противном случае файл загружается с помощью загрузчика модулей CommonJS. Дополнительные сведения см. в разделе Загрузчики модулей.

Примечание к точке входа загрузчика модулей ECMAScript

При загрузке точки входа программы загрузчиком модулей ECMAScript команда node будет принимать в качестве входных данных только файлы с расширениями .js, .mjs, или .cjs; и с расширениями .wasm при включенном параметре --experimental-wasm-modules.

Параметры

История
Версия Изменения
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() (и через использование модуля node:domain, который его использует).

--build-snapshot

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

Генерирует blob снимка при выходе процесса и записывает его на диск, который можно загрузить позже с помощью --snapshot-blob.

При построении снимка, если --snapshot-blob не указано, сгенерированный blob будет записан по умолчанию в snapshot.blob в текущей рабочей директории. В противном случае, он будет записан в путь, указанный параметром --snapshot-blob.

$ echo "globalThis.foo = 'I am from the snapshot'" > snapshot.js

# Run snapshot.js to initialize the application and snapshot the
# state of it into snapshot.blob.
$ node --snapshot-blob snapshot.blob --build-snapshot snapshot.js

$ echo "console.log(globalThis.foo)" > index.js

# Load the generated snapshot and start the application from index.js.
$ node --snapshot-blob snapshot.blob index.js
I am from the snapshot copy

Можно использовать v8.startupSnapshot API для указания точки входа во время создания снимка, тем самым избежав необходимости дополнительного скрипта входа во время десериализации:

$ echo "require('v8').startupSnapshot.setDeserializeMainFunction(() => console.log('I am from the snapshot'))" > snapshot.js
$ node --snapshot-blob snapshot.blob --build-snapshot snapshot.js
$ node --snapshot-blob snapshot.blob
I am from the snapshot copy

Дополнительную информацию можно найти в документации v8.startupSnapshot API.

В настоящее время поддержка снимков во время выполнения экспериментальна, так как:

  1. Модули пользовательского пространства пока не поддерживаются в снимке, поэтому можно создать снимок только для одного файла. Пользователи могут объединить свои приложения в один скрипт с помощью своего любимого сборщика перед созданием снимка.
  2. Только подмножество встроенных модулей работает в снимке, хотя набор тестов ядра Node.js проверяет, что несколько довольно сложных приложений могут быть сняты. Поддержка других модулей добавляется. Если при создании снимка произойдут сбои или некорректные действия, пожалуйста, отправьте отчет в следящий вопрос Node.js и сослаться на него в трекере ошибок для снимков пользовательского пространства.

--completion-bash

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

Выводит скрипт bash completion для Node.js, пригодный для копирования и вставки.

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

-C condition, --conditions=condition

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

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

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

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

Например, для запуска модуля с разрешениями "development":

$ node -C development app.js copy

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

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

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

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

--disallow-code-generation-from-strings

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

Принудительно вызывает исключение для встроенных языковых функций, таких как eval и new Function, которые генерируют код из строк. Это не влияет на модуль Node.js node:vm.

--dns-result-order=order

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

Изменено значение по умолчанию на verbatim.

v16.4.0, v14.18.0

Добавлен в: v16.4.0, v14.18.0

Устанавливает значение по умолчанию для verbatim в dns.lookup() и dnsPromises.lookup(). Значение может быть:

  • ipv4first: устанавливает значение по умолчанию для verbatim false.
  • verbatim: устанавливает значение по умолчанию для verbatim true.

По умолчанию verbatim и dns.setDefaultResultOrder() имеют более высокий приоритет, чем --dns-result-order.

--enable-fips

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

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

--enable-network-family-autoselection

Добавлен в: v18.18.0

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

--enable-source-maps

История
Версия Изменения
v15.11.0, v14.18.0

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

v12.12.0

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

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

При использовании транспилятора, такого как TypeScript, отслеживания стека приложения ссылаются на транспилированный код, а не на исходное положение в исходном коде. --enable-source-maps позволяет кэшировать карты исходного кода и делает всё возможное, чтобы отобразить отслеживания стека относительно исходного файла.

Переопределение Error.prepareStackTrace предотвращает изменение отслеживания стека --enable-source-maps.

Обратите внимание, что включение карт исходного кода может вносить задержки в ваше приложение при обращении к Error.stack. Если вы часто обращаетесь к Error.stack в своём приложении, учтите влияние --enable-source-maps на производительность.

--experimental-global-customevent

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

Выводит CustomEvent Web API в глобальную область видимости.

--experimental-global-webcrypto

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

Выводит Web Crypto API в глобальную область видимости.

--experimental-import-meta-resolve

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

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

--experimental-loader=module

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

Это флаг был переименован из --loader в --experimental-loader.

v8.8.0

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

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

--experimental-network-imports

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

Включить экспериментальную поддержку протокола https: в import спецификаторах.

--experimental-policy

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

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

--no-experimental-fetch

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

Отключить экспериментальную поддержку Fetch API.

--no-experimental-repl-await

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

Используйте этот флаг для отключения ожиданий верхнего уровня в REPL.

--experimental-shadow-realm

Добавлен в: v18.13.0

Используйте этот флаг для включения поддержки ShadowRealm.

--experimental-specifier-resolution=mode

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

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

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

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

--experimental-test-coverage

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

Этот параметр можно использовать с --test.

v18.15.0

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

При использовании совместно с модулем node:test, отчет о покрытии кода генерируется в рамках вывода исполняемого файла. Если тесты не выполняются, отчет о покрытии кода не генерируется. Подробнее см. в документации по сбору покрытия кода из тестов.

--experimental-vm-modules

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

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

--experimental-wasi-unstable-preview1

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

Этот параметр больше не требуется, так как WASI включен по умолчанию, но его можно всё ещё передавать.

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.

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

Для добавления полифиллов, --require и --import оба выполняют работу перед заморозкой внутренних функций.

--force-node-api-uncaught-exceptions-policy

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

Принудительно использовать событие uncaughtException для асинхронных обратных вызовов Node-API.

Чтобы предотвратить сбой процесса существующим дополнением, этот флаг по умолчанию отключён. В будущем этот флаг будет включен по умолчанию для принудительного соблюдения правильного поведения.

--heapsnapshot-near-heap-limit=max_count

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

Записывает моментальный снимок кучи V8 на диск, когда использование кучи V8 приближается к предельному значению. count должно быть целым положительным числом (в этом случае Node.js запишет не более max_count снимков на диск).

При генерации снимков может быть запущена сборка мусора, снижающая использование кучи. Поэтому несколько снимков могут быть записаны на диск, прежде чем экземпляр Node.js, наконец, исчерпает память. Эти снимки кучи можно сравнить, чтобы определить, какие объекты выделены в течение времени, в котором делаются последовательные снимки. Не гарантируется, что Node.js запишет точно max_count снимков на диск, но он постарается сгенерировать хотя бы один и до max_count снимков, прежде чем экземпляр Node.js исчерпает память, когда max_count больше, чем 0.

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

$ node --max-old-space-size=100 --heapsnapshot-near-heap-limit=3 index.js
Wrote snapshot to Heap.20200430.100036.49580.0.001.heapsnapshot
Wrote snapshot to Heap.20200430.100037.49580.0.002.heapsnapshot
Wrote snapshot to Heap.20200430.100038.49580.0.003.heapsnapshot

<--- Last few GCs --->

[49580:0x110000000]     4826 ms: Mark-sweep 130.6 (147.8) -> 130.5 (147.8) MB, 27.4 / 0.0 ms  (average mu = 0.126, current mu = 0.034) allocation failure scavenge might not succeed
[49580:0x110000000]     4845 ms: Mark-sweep 130.6 (147.8) -> 130.6 (147.8) MB, 18.8 / 0.0 ms  (average mu = 0.088, current mu = 0.031) allocation failure scavenge might not succeed


<--- JS stacktrace --->

FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
.... copy

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

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

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

--import=module

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

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

Следует правилам разрешения модулей ECMAScript. Используйте --require для загрузки модуля CommonJS. Модули, предварительно загруженные с помощью --require будут загружаться до модулей, предварительно загруженных с помощью --import.

--input-type=type

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

Настраивает Node.js на интерпретацию строкового ввода как CommonJS или модуля ES. Строковый ввод — это ввод через --eval, --print, или STDIN.

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

REPL не поддерживает эту опцию.

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

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

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

--jitless

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

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

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

--max-http-header-size=size

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

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

v11.6.0, v10.15.0

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

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

--napi-modules

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

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

--no-addons

Добавлен в: v16.10.0, v14.19.0

Отключить условие экспорта node-addons, а также отключение загрузки нативных дополнений. При использовании --no-addons, вызов process.dlopen или требование нативного C++-дополнения завершится ошибкой и сгенерирует исключение.

--no-deprecation

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

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

--no-extra-info-on-fatal-exception

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

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

--no-force-async-hooks-checks

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

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

--no-global-search-paths

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

Не искать модули из глобальных путей, таких как $HOME/.node_modules и $NODE_PATH.

--no-warnings

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

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

--node-memory-debug

Добавлен в: v15.0.0, v14.18.0

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

--openssl-config=file

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

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

--openssl-shared-config

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

Включить раздел конфигурации OpenSSL по умолчанию, openssl_conf, для чтения из файла конфигурации OpenSSL. Файл конфигурации по умолчанию имеет имя openssl.cnf, но это можно изменить, используя переменную окружения OPENSSL_CONF, или используя параметр командной строки --openssl-config. Расположение файла конфигурации OpenSSL по умолчанию зависит от того, как OpenSSL связан с Node.js. Обмен конфигурацией OpenSSL может иметь нежелательные последствия, и рекомендуется использовать раздел конфигурации, специфичный для Node.js, который nodejs_conf и является значением по умолчанию, если этот параметр не используется.

--openssl-legacy-provider

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

Включить поставщика совместимости OpenSSL 3.0. Для получения дополнительной информации см. OSSL_PROVIDER-legacy.

--pending-deprecation

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

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

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

Параметр командной строки --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, v12.17.0

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

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

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

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

v12.0.0

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

v11.8.0

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

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

--report-filename=filename

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

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

v12.0.0

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

v11.8.0

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

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

Если имя файла установлено в 'stdout' или 'stderr', отчет записывается соответственно в стандартный вывод или стандартный поток ошибок процесса.

--report-on-fatalerror

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

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

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

v12.0.0

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

v11.8.0

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

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

--report-uncaught-exception

История
Версия Изменения
v18.8.0

Отчет не генерируется, если обработан необработанный исключение.

v13.12.0, v12.17.0

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

v12.0.0

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

v11.8.0

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

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

--secure-heap=n

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

Инициализирует безопасную кучу OpenSSL размером n байт. При инициализации безопасная куча используется для выделения выбранных типов памяти внутри OpenSSL во время генерации ключей и других операций. Это полезно, например, для предотвращения утечки конфиденциальной информации из-за переполнения или недополнения указателей.

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

Указанный размер кучи должен быть степенью двойки. Любое значение меньше 2 отключит безопасную кучу.

Безопасная куча отключена по умолчанию.

Безопасная куча недоступна в Windows.

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

--secure-heap-min=n

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

При использовании --secure-heap, флаг --secure-heap-min указывает минимальный размер выделения из безопасной кучи. Минимальное значение — 2. Максимальное значение — меньшее из --secure-heap или 2147483647. Указанное значение должно быть степенью двойки.

--snapshot-blob=path

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

При использовании с --build-snapshot, --snapshot-blob указывает путь, куда записывается сгенерированный блок данных снимка. Если не указано, сгенерированный блок данных записывается в snapshot.blob в текущей рабочей директории.

При использовании без --build-snapshot, --snapshot-blob указывает путь к блоку данных, который используется для восстановления состояния приложения.

При загрузке снимка Node.js проверяет, что:

  1. Версия, архитектура и платформа запущенной бинарной Node.js точно такие же, как у бинарного файла, который создает снимок.
  2. Флаги V8 и характеристики процессора совместимы с теми, что у бинарного файла, который создает снимок.

Если они не совпадают, Node.js отказывается загружать снимок и завершается с кодом состояния 1.

--test

История
Версия Изменения
v18.13.0

Запускающий тесты инструмент теперь поддерживает работу в режиме наблюдения.

v18.1.0

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

Запускает инструмент запуска тестов командной строки Node.js. Этот флаг нельзя комбинировать с --watch-path, --check, --eval, --interactive или инструментом инспекции. Для получения более подробной информации см. документацию по запуску тестов из командной строки.

--test-name-pattern

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

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

--test-reporter

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

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

--test-reporter-destination

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

Назначение соответствующего репортера тестов. Для получения более подробной информации см. документацию по репортерам тестов.

--test-only

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

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

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

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

  • Идентификатор потока, как возвращает 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, v12.17.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

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

Изменён режим по умолчанию на throw. Ранее выдавалось предупреждение.

v12.0.0, v10.17.0

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

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

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

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

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

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

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

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

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

--v8-options

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

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

--v8-pool-size=num

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

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

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

Количество параллелизма относится к числу вычислений, которые могут выполняться одновременно на данной машине. В общем случае оно равно количеству ЦП, но может отличаться в средах, таких как виртуальные машины или контейнеры.

--watch

История
Версия Изменения
v18.13.0

Инструмент для тестирования теперь поддерживает работу в режиме наблюдения.

v18.11.0

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

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

Запускает Node.js в режиме наблюдения. В режиме наблюдения изменения в отслеживаемых файлах приводят к перезапуску процесса Node.js. По умолчанию режим наблюдения будет отслеживать точку входа и любые необходимые или импортированные модули. Используйте --watch-path для указания путей для отслеживания.

Этот флаг не может быть объединён с --check, --eval, --interactive, или REPL.

$ node --watch index.js copy

--watch-path

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

Запускает Node.js в режиме наблюдения и указывает пути для отслеживания. В режиме наблюдения изменения в отслеживаемых путях приводят к перезапуску процесса Node.js. Это выключит отслеживание необходимых или импортированных модулей, даже при использовании в сочетании с --watch.

Этот флаг не может быть объединён с --check, --eval, --interactive, --test, или REPL.

$ node --watch-path=./src --watch-path=./tests index.js copy

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

--watch-preserve-output

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

$ node --watch --watch-preserve-output test.js copy

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

-p, --print "script"

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

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

v0.6.4

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

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

-r, --require module

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

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

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

Поддерживаются только модули CommonJS. Используйте --import для предварительной загрузки модуля ECMAScript. Модули, предварительно загруженные с помощью --require, будут выполняться до модулей, предварительно загруженных с помощью --import.

-v, --version

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

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

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

FORCE_COLOR=[1, 2, 3]

Переменная окружения FORCE_COLOR используется для включения цветного вывода ANSI. Значение может быть:

  • 1, true, или пустая строка '' указывают поддержку 16-цветной схемы,
  • 2 для указания поддержки 256-цветной схемы, или
  • 3 для указания поддержки 16-миллионной цветовой схемы.

Когда используется FORCE_COLOR и установлено поддерживаемое значение, переменные окружения NO_COLOR, и NODE_DISABLE_COLORS игнорируются.

Любое другое значение приведет к отключению цветного вывода.

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 выполняется как setuid root или имеет установленные Linux файловые возможности.

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

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 или файл скрипта.

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

NODE_OPTIONS='--require "./my path/file.js"' copy

Флаг-синглтон, переданный в качестве опции командной строки, переопределит тот же флаг, переданный в NODE_OPTIONS:

# The inspector will be available on port 5555
NODE_OPTIONS='--inspect=localhost:4444' node --inspect=localhost:5555 copy

Флаг, который можно передавать многократно, будет обрабатываться так, как будто его NODE_OPTIONS экземпляра были переданы сначала, а затем его экземпляры командной строки - позже:

NODE_OPTIONS='--require "./a.js"' node --require "./b.js"
# is equivalent to:
node --require "./a.js" --require "./b.js" copy

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

  • --conditions, -C
  • --diagnostic-dir
  • --disable-proto
  • --dns-result-order
  • --enable-fips
  • --enable-network-family-autoselection
  • --enable-source-maps
  • --experimental-abortcontroller
  • --experimental-global-customevent
  • --experimental-global-webcrypto
  • --experimental-import-meta-resolve
  • --experimental-json-modules
  • --experimental-loader
  • --experimental-modules
  • --experimental-network-imports
  • --experimental-policy
  • --experimental-shadow-realm
  • --experimental-specifier-resolution
  • --experimental-top-level-await
  • --experimental-vm-modules
  • --experimental-wasi-unstable-preview1
  • --experimental-wasm-modules
  • --force-context-aware
  • --force-fips
  • --force-node-api-uncaught-exceptions-policy
  • --frozen-intrinsics
  • --heapsnapshot-near-heap-limit
  • --heapsnapshot-signal
  • --http-parser
  • --icu-data-dir
  • --import
  • --input-type
  • --insecure-http-parser
  • --inspect-brk
  • --inspect-port, --debug-port
  • --inspect-publish-uid
  • --inspect
  • --max-http-header-size
  • --napi-modules
  • --no-addons
  • --no-deprecation
  • --no-experimental-fetch
  • --no-experimental-repl-await
  • --no-extra-info-on-fatal-exception
  • --no-force-async-hooks-checks
  • --no-global-search-paths
  • --no-warnings
  • --node-memory-debug
  • --openssl-config
  • --openssl-legacy-provider
  • --openssl-shared-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
  • --secure-heap-min
  • --secure-heap
  • --snapshot-blob
  • --test-only
  • --test-reporter-destination
  • --test-reporter
  • --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
  • --watch-path
  • --watch-preserve-output
  • --watch
  • --zero-fill-buffers

Разрешенные опции V8:

  • --abort-on-uncaught-exception
  • --disallow-code-generation-from-strings
  • --enable-etw-stack-walking
  • --huge-max-old-generation-size
  • --interpreted-frames-native-stack
  • --jitless
  • --max-old-space-size
  • --max-semi-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.

--enable-etw-stack-walking доступна только в Windows.

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

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

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

NODE_SKIP_PLATFORM_CHECK=value

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

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

NODE_TEST_CONTEXT=value

Если value равно 'child', параметры репортера тестов будут перезаписаны, и вывод тестов будет отправлен в stdout в формате TAP. Если предоставлено любое другое значение, Node.js не дает гарантий относительно используемого формата репортера или его стабильности.

NODE_TLS_REJECT_UNAUTHORIZED=value

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

NODE_V8_COVERAGE=dir

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

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

Вывод данных о покрытии

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

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

Если найдены, данные карт исходных кодов добавляются к ключу верхнего уровня source-map-cache в объекте с данными о покрытии.

source-map-cache — это объект, ключи которого представляют файлы, из которых были извлечены карты исходных кодов, а значения включают исходный URL карты исходных кодов (в ключе url), информацию о парсинге карты исходных кодов версии 3 (в ключе 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
      ]
    }
  }
} copy

NO_COLOR=<any>

NO_COLOR — псевдоним для NODE_DISABLE_COLORS. Значение переменной окружения произвольное.

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.

TZ

История
Версия Изменения
v16.2.0

Изменение переменной TZ с помощью process.env.TZ = меняет часовой пояс и на Windows.

v13.0.0

Изменение переменной TZ с помощью process.env.TZ = меняет часовой пояс на системах POSIX.

v0.0.1

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

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

Хотя Node.js не поддерживает все способы обработки TZ в других средах обработки TZ в других средах, он поддерживает основные идентификаторы часовых поясов идентификаторы часовых поясов (такие как 'Etc/UTC', 'Europe/Paris', или 'America/New_York'). Возможно, он поддерживает несколько других сокращений или псевдонимов, но их использование крайне не рекомендуется и не гарантируется.

$ TZ=Europe/Dublin node -pe "new Date().toString()"
Wed May 12 2021 20:30:48 GMT+0100 (Irish Standard Time) copy

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 copy

--max-semi-space-size=SIZE (в мегабайтах)

Устанавливает максимальный размер полупространства для сборщика мусора отсортировки V8 в МБ (мегабайтах). Увеличение максимального размера полупространства может улучшить производительность Node.js за счет увеличения потребления памяти.

Так как размер молодого поколения кучи V8 в три раза больше (см. YoungGenerationSizeFromSemiSpaceSize в V8) размера полупространства, увеличение на 1 МБ полупространства применяется к каждому из трёх отдельных полупространств и увеличивает размер кучи на 3 МБ. Улучшение производительности зависит от вашей рабочей нагрузки (см. #42511).

Значение по умолчанию составляет 16 МБ для 64-битных систем и 8 МБ для 32-битных систем. Для получения наилучшей конфигурации для вашего приложения вы должны попробовать разные значения max-semi-space-size при выполнении бенчмарков для вашего приложения.

Например, бенчмарк на 64-битной системе:

for MiB in 16 32 64 128; do
    node --max-semi-space-size=$MiB index.js
done copy

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

Spec-Zone.ru

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