Spec-Zone.ru › Node.js 16 LTS

Параметры командной строки

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

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

Описание

node [options] [V8 options] [script.js | -e "script" | -] [--] [arguments]

node inspect [script.js | -e "script" | <host>:<port>] …

node --v8-options

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

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

Параметры

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

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

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

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

-

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

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

--

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

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

--abort-on-uncaught-exception

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

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

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

--completion-bash

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

Выводит скрипт завершения bash для Node.js, готовый к использованию.

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

-C=condition, --conditions=condition

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

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

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

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

Например, чтобы запустить модуль с разрешениями "development":

$ node -C=development app.js

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

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

--dns-result-order=order

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

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

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

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

--enable-fips

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

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

--enable-source-maps

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

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

v12.12.0

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

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

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

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

--experimental-abortcontroller

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

--experimental-abortcontroller больше не требуется.

v15.0.0

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

Поддержка AbortController и AbortSignal включена по умолчанию. Использование этого параметра командной строки больше не требуется.

--experimental-import-meta-resolve

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

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

--experimental-json-modules

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

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

--experimental-loader=module

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

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

--experimental-policy

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

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

--no-experimental-repl-await

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

Используйте этот флаг для отключения top-level await в REPL.

--experimental-specifier-resolution=mode

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

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

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

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

--experimental-vm-modules

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

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

--experimental-wasi-unstable-preview1

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

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

v13.3.0, v12.16.0

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

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

--experimental-wasm-modules

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

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

--force-context-aware

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

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

--force-fips

Added in: v6.0.0

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

--frozen-intrinsics

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

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

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

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

--heapsnapshot-near-heap-limit=max_count

Added in: v15.1.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
....

--heapsnapshot-signal=signal

Added in: 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

Added in: 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

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

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

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

--heap-prof-interval

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

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

--heap-prof-name

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

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

--icu-data-dir=file

Added in: v0.11.15

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

--input-type=type

Added in: v12.0.0

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

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

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

Added in: v7.6.0

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

--inspect-port=[host:]port

Added in: v7.6.0

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

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

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

--inspect[=[host:]port]

Added in: 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

Added in: v13.4.0, v12.15.0, v10.19.0

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

--jitless

Added in: v12.0.0

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

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

--max-http-header-size=size

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

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

v11.6.0, v10.15.0

Added in: v11.6.0, v10.15.0

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

--napi-modules

Added in: v7.10.0

Этот параметр ничего не делает. Он поддерживается для совместимости.

--no-addons

Added in: v16.10.0

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

--no-deprecation

Added in: v0.8.0

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

--no-force-async-hooks-checks

Added in: v9.0.0

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

--no-global-search-paths

Added in: v16.10.0

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

--no-warnings

Added in: v6.0.0

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

--node-memory-debug

Added in: v15.0.0

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

--openssl-config=file

Added in: v6.9.0

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

--pending-deprecation

Added in: 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

Флаг командной строки --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

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

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

История
Версия Изменения
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. Значение должно быть степенью двойки.

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

Added in: v12.0.0, v10.20.0

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

--tls-min-v1.2

Added in: v12.2.0, v10.20.0

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

--tls-min-v1.3

Added in: v12.0.0

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

--trace-atomics-wait

Added in: v14.3.0

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

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

Поля соответствуют:

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

--trace-deprecation

Added in: v0.8.0

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

--trace-event-categories

Added in: v7.7.0

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

--trace-event-file-pattern

Added in: v9.8.0

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

--trace-events-enabled

Added in: v7.7.0

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

--trace-exit

Added in: v13.5.0, v12.16.0

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

--trace-sigint

Added in: v13.9.0, v12.17.0

Печать стековой трассы при SIGINT.

--trace-sync-io

Added in: v2.1.0

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

--trace-tls

Added in: v12.2.0

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

--trace-uncaught

Added in: v13.1.0

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

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

--trace-warnings

Added in: v6.0.0

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

--track-heap-objects

Added in: v2.4.0

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

--unhandled-rejections=mode

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

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

v12.0.0, v10.17.0

Added in: v12.0.0, v10.17.0

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

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

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

Added in: v6.11.0

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

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

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

См. SSL_CERT_DIR и SSL_CERT_FILE.

--use-largepages=mode

Added in: v13.6.0, v12.17.0

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

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

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

--v8-options

Added in: v0.1.3

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

--v8-pool-size=num

Added in: v5.10.0

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

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

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

--zero-fill-buffers

Added in: v6.0.0

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

-c, --check

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

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

v5.0.0, v4.2.0

Added in: v5.0.0, v4.2.0

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

-e, --eval "script"

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

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

v0.5.2

Added in: v0.5.2

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

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

-h, --help

Added in: v0.1.3

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

-i, --interactive

Added in: v0.7.7

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

-p, --print "script"

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

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

v0.6.4

Added in: v0.6.4

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

-r, --require module

Added in: v1.6.0

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

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

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

-v, --version

Added in: v0.1.3

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

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

FORCE_COLOR=[1, 2, 3]

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

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

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

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

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.js запущен как 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"'

Флаг-синглтон, переданный как командная опция, переопределит тот же флаг, переданный в 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, -C
  • --diagnostic-dir
  • --disable-proto
  • --dns-result-order
  • --enable-fips
  • --enable-source-maps
  • --experimental-abortcontroller
  • --experimental-import-meta-resolve
  • --experimental-json-modules
  • --experimental-loader
  • --experimental-modules
  • --experimental-policy
  • --experimental-specifier-resolution
  • --experimental-top-level-await
  • --experimental-vm-modules
  • --experimental-wasi-unstable-preview1
  • --experimental-wasm-modules
  • --force-context-aware
  • --force-fips
  • --frozen-intrinsics
  • --heapsnapshot-near-heap-limit
  • --heapsnapshot-signal
  • --http-parser
  • --icu-data-dir
  • --input-type
  • --insecure-http-parser
  • --inspect-brk
  • --inspect-port, --debug-port
  • --inspect-publish-uid
  • --inspect
  • --max-http-header-size
  • --napi-modules
  • --no-addons
  • --no-deprecation
  • --no-experimental-repl-await
  • --no-force-async-hooks-checks
  • --no-global-search-paths
  • --no-warnings
  • --node-memory-debug
  • --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
  • --secure-heap-min
  • --secure-heap
  • --throw-deprecation
  • --title
  • --tls-cipher-list
  • --tls-keylog
  • --tls-max-v1.2
  • --tls-max-v1.3
  • --tls-min-v1.0
  • --tls-min-v1.1
  • --tls-min-v1.2
  • --tls-min-v1.3
  • --trace-atomics-wait
  • --trace-deprecation
  • --trace-event-categories
  • --trace-event-file-pattern
  • --trace-events-enabled
  • --trace-exit
  • --trace-sigint
  • --trace-sync-io
  • --trace-tls
  • --trace-uncaught
  • --trace-warnings
  • --track-heap-objects
  • --unhandled-rejections
  • --use-bundled-ca
  • --use-largepages
  • --use-openssl-ca
  • --v8-pool-size
  • --zero-fill-buffers

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

  • --abort-on-uncaught-exception
  • --disallow-code-generation-from-strings
  • --huge-max-old-generation-size
  • --interpreted-frames-native-stack
  • --jitless
  • --max-old-space-size
  • --perf-basic-prof-only-functions
  • --perf-basic-prof
  • --perf-prof-unwinding-info
  • --perf-prof
  • --stack-trace-limit

--perf-basic-prof-only-functions, --perf-basic-prof, --perf-prof-unwinding-info, и --perf-prof доступны только в Linux.

NODE_PATH=path[:…]

Добавлен в: 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_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), информацию из парсированной карты исходного кода 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
      ]
    }
  }
}

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, это может привести к тому, что они будут доверять тем же ЦС, что и узел.

SSL_CERT_FILE=file

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

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

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

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)

UV_THREADPOOL_SIZE=size

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

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

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

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

Полезные опции V8

У V8 есть свой набор опций командной строки. Любая опция командной строки V8, предоставленная node , будет передана V8 для обработки. У опций V8 нет гарантии стабильности. Команда V8 сама не считает их частью своего формального API и оставляет за собой право их изменять в любое время. Аналогично, они не защищены гарантиями стабильности Node.js. Многие опции V8 интересны только разработчикам V8. Несмотря на это, существует небольшой набор опций V8, широко применяемых в Node.js, и они документированы здесь:

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

Устанавливает максимальный размер памяти раздела старой памяти V8. По мере приближения потребления памяти к пределу V8 будет тратить больше времени на сборку мусора, пытаясь освободить неиспользуемую память.

На машине с 2 ГБ оперативной памяти рекомендуется установить это значение на 1536 (1,5 ГБ), чтобы оставить некоторую память для других целей и избежать подкачки.

$ node --max-old-space-size=1536 index.js

© Joyent, Inc. and other Node contributors
Licensed under the MIT License.
Node.js is a trademark of Joyent, Inc. and is used with its permission.
We are not endorsed by or affiliated with Joyent.
https://nodejs.org/dist/latest-v16.x/docs/api/cli.html

Spec-Zone.ru

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