Spec-Zone.ru › Node.js 20 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 или загрузчиком модулей ES ES модулей, если передан параметр --experimental-default-type=module. Если соответствующий файл не найден, генерируется ошибка.

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

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

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

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

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

Параметры

История
Версия Изменения
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, который его использует).

--allow-addons

Добавлен в: v20.12.0
Стабильность: 1.1 - Активное развитие

При использовании Модели разрешений, процесс по умолчанию не сможет использовать нативные плагины. Попытки сделать это приведут к ошибке ERR_DLOPEN_DISABLED, если пользователь явно не передаст флаг --allow-addons при запуске Node.js.

Пример:

// Attempt to require an native addon
require('nodejs-addon-example'); copy
$ node --experimental-permission --allow-fs-read=* index.js
node:internal/modules/cjs/loader:1319
  return process.dlopen(module, path.toNamespacedPath(filename));
                 ^

Error: Cannot load native addon because loading addons is disabled.
    at Module._extensions..node (node:internal/modules/cjs/loader:1319:18)
    at Module.load (node:internal/modules/cjs/loader:1091:32)
    at Module._load (node:internal/modules/cjs/loader:938:12)
    at Module.require (node:internal/modules/cjs/loader:1115:19)
    at require (node:internal/modules/helpers:130:18)
    at Object.<anonymous> (/home/index.js:1:15)
    at Module._compile (node:internal/modules/cjs/loader:1233:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1287:10)
    at Module.load (node:internal/modules/cjs/loader:1091:32)
    at Module._load (node:internal/modules/cjs/loader:938:12) {
  code: 'ERR_DLOPEN_DISABLED'
} copy

--allow-child-process

Добавлен в: v20.0.0
Стабильность: 1.1 - Активное развитие

При использовании Модели разрешений, процесс по умолчанию не сможет запускать дочерние процессы. Попытки сделать это приведут к ошибке ERR_ACCESS_DENIED, если пользователь явно не передаст флаг --allow-child-process при запуске Node.js.

Пример:

const childProcess = require('node:child_process');
// Attempt to bypass the permission
childProcess.spawn('node', ['-e', 'require("fs").writeFileSync("/new-file", "example")']); copy
$ node --experimental-permission --allow-fs-read=* index.js
node:internal/child_process:388
  const err = this._handle.spawn(options);
                           ^
Error: Access to this API has been restricted
    at ChildProcess.spawn (node:internal/child_process:388:28)
    at Object.spawn (node:child_process:723:9)
    at Object.<anonymous> (/home/index.js:3:14)
    at Module._compile (node:internal/modules/cjs/loader:1120:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1174:10)
    at Module.load (node:internal/modules/cjs/loader:998:32)
    at Module._load (node:internal/modules/cjs/loader:839:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:17:47 {
  code: 'ERR_ACCESS_DENIED',
  permission: 'ChildProcess'
} copy

--allow-fs-read

История
Версия Изменения
v20.7.0

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

v20.0.0

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

Стабильность: 1.1 - Активное развитие

Этот флаг настраивает разрешения на чтение файловой системы с использованием Модели разрешений.

Допустимые аргументы для флага --allow-fs-read:

  • * - Для разрешения всех FileSystemRead операций.
  • Несколько путей можно разрешить, используя несколько флагов --allow-fs-read. Пример --allow-fs-read=/folder1/ --allow-fs-read=/folder1/

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

Примеры можно найти в документации по Разрешениям файловой системы.

Относительные пути пока НЕ поддерживаются через флаг командной строки.

Модуль инициализации также должен быть разрешен. Рассмотрим пример:

$ node --experimental-permission t.js
node:internal/modules/cjs/loader:162
  const result = internalModuleStat(filename);
                 ^

Error: Access to this API has been restricted
    at stat (node:internal/modules/cjs/loader:162:18)
    at Module._findPath (node:internal/modules/cjs/loader:640:16)
    at resolveMainPath (node:internal/modules/run_main:15:25)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:53:24)
    at node:internal/main/run_main_module:23:47 {
  code: 'ERR_ACCESS_DENIED',
  permission: 'FileSystemRead',
  resource: '/Users/rafaelgss/repos/os/node/t.js'
} copy

Процесс должен иметь доступ к модулю index.js:

node --experimental-permission --allow-fs-read=/path/to/index.js index.js copy

--allow-fs-write

История
Версия Изменения
v20.7.0

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

v20.0.0

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

Стабильность: 1.1 - Активное развитие

Этот флаг настраивает разрешения на запись в файловой системе с использованием Модели разрешений.

Допустимые аргументы для флага --allow-fs-write:

  • * - Для разрешения всех FileSystemWrite операций.
  • Несколько путей можно разрешить, используя несколько флагов --allow-fs-read. Пример --allow-fs-read=/folder1/ --allow-fs-read=/folder1/

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

Примеры можно найти в документации по Разрешениям файловой системы.

Относительные пути НЕ поддерживаются через флаг командной строки.

--allow-worker

Добавлен в: v20.0.0
Стабильность: 1.1 - Активное развитие

При использовании Модели разрешений, процесс по умолчанию не сможет создавать рабочие потоки. По соображениям безопасности вызов вернёт ошибку ERR_ACCESS_DENIED, если пользователь явно не передаст флаг --allow-worker в главном процессе Node.js.

Пример:

const { Worker } = require('node:worker_threads');
// Attempt to bypass the permission
new Worker(__filename); copy
$ node --experimental-permission --allow-fs-read=* index.js
node:internal/worker:188
    this[kHandle] = new WorkerImpl(url,
                    ^

Error: Access to this API has been restricted
    at new Worker (node:internal/worker:188:21)
    at Object.<anonymous> (/home/index.js.js:3:1)
    at Module._compile (node:internal/modules/cjs/loader:1120:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1174:10)
    at Module.load (node:internal/modules/cjs/loader:998:32)
    at Module._load (node:internal/modules/cjs/loader:839:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:17:47 {
  code: 'ERR_ACCESS_DENIED',
  permission: 'WorkerThreads'
} copy

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

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

$ 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 и укажите ссылку на него в трекинговой проблеме пользовательских снимков.

--build-snapshot-config

Добавлен в: v20.12.0
Стабильность: 1 - Экспериментальный

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

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

  • builder <строка> Обязательный. Указывает имя скрипта, который выполняется перед созданием снимка, как если бы --build-snapshot был передан со скриптом builder в качестве основного.
  • withoutCodeCache <булево> Необязательный. Включение кэша кода сокращает время, затраченное на компиляцию функций, включённых в снимок, за счёт большего размера снимка и потенциальной потери портативности снимка.

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

-c, --check

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

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

v5.0.0, v4.2.0

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

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

--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-warning=code-or-type

Устойчивость: 1.1 - Активное развитие
Добавлена в: v20.11.0

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

Предупреждения, выводимые из process.emitWarning(), могут содержать code и type. Этот параметр не будет выводить предупреждения, соответствующие code или type.

Список предупреждений об устаревании.

Типы предупреждений ядра Node.js: DeprecationWarning и ExperimentalWarning

Например, следующий скрипт не будет выводить DEP0025 require('node:sys') при выполнении с node --disable-warning=DEP0025:

Модули MJS

import sys from 'node:sys';

Модули CJS

const sys = require('node:sys');

Например, следующий скрипт будет выводить DEP0025 require('node:sys'), но не любые экспериментальные предупреждения (например, ExperimentalWarning: vm.measureMemory это экспериментальная функция в <=v21), при выполнении с node --disable-warning=ExperimentalWarning:

Модули MJS

import sys from 'node:sys';
import vm from 'node:vm';

vm.measureMemory();

Модули CJS

const sys = require('node:sys');
const vm = require('node:vm');

vm.measureMemory();

--disable-wasm-trap-handler

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

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

$ ulimit -v 5000000
$ node -p "new WebAssembly.Memory({ initial: 10, maximum: 100 });"
[eval]:1
new WebAssembly.Memory({ initial: 10, maximum: 100 });
^

RangeError: WebAssembly.Memory(): could not allocate memory
    at [eval]:1:1
    at runScriptInThisContext (node:internal/vm:209:10)
    at node:internal/process/execution:118:14
    at [eval]-wrapper:6:24
    at runScript (node:internal/process/execution:101:62)
    at evalScript (node:internal/process/execution:136:3)
    at node:internal/main/eval_string:49:3
 copy

--disable-wasm-trap-handler отключает эту оптимизацию, чтобы пользователи могли хотя бы запустить WebAssembly (с менее оптимальной производительностью), когда виртуальная адресная область памяти, доступная для их процесса Node.js, меньше, чем требуется виртуальной областью памяти V8 WebAssembly.

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

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

Теперь поддерживается ipv6first.

v17.0.0

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

v16.4.0, v14.18.0

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

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

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

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

--enable-fips

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

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

--enable-source-maps

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

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

v12.12.0

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

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

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

Переопределение Error.prepareStackTrace может помешать --enable-source-maps изменять трассировку стека. Вызов и возврат результатов исходной функции Error.prepareStackTrace в переопределяющей функции позволяет модифицировать трассировку стека с помощью source map.

const originalPrepareStackTrace = Error.prepareStackTrace;
Error.prepareStackTrace = (error, trace) => {
  // Modify error and trace and format stack trace with
  // original Error.prepareStackTrace.
  return originalPrepareStackTrace(error, trace);
}; copy

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

--env-file=config

Устойчивость: 1.1 - Активное развитие
История
Версия Изменения
v20.12.0

Добавлена поддержка многострочных значений.

v20.6.0

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

Загружает переменные среды из файла, относящегося к текущему каталогу, делая их доступными для приложений при process.env. Парсятся и применяются переменные среды, настраивающие Node.js, такие как NODE_OPTIONS. Если та же переменная определена в среде и в файле, приоритет имеет значение из среды.

Вы можете передать несколько аргументов --env-file. Последующие файлы переопределяют существующие переменные, определенные в предыдущих файлах.

node --env-file=.env --env-file=.development.env index.js copy

Формат файла должен содержать по одной строке для каждой пары ключ-значение имени переменной среды и значения, разделенные =:

PORT=3000 copy

Любой текст после # обрабатывается как комментарий:

# This is a comment
PORT=3000 # This is also a comment copy

Значения могут начинаться и заканчиваться следующими кавычками: `, " или '. Они опускаются из значений.

USERNAME="nodejs" # will result in `nodejs` as the value. copy

Поддерживаются многострочные значения:

MULTI_LINE="THIS IS
A MULTILINE"
# will result in `THIS IS\nA MULTILINE` as the value. copy

Ключевое слово export перед ключом игнорируется:

export USERNAME="nodejs" # will result in `nodejs` as the value. copy

-e, --eval "script"

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

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

v0.5.2

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

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

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

--experimental-default-type=type

Добавлена в: v20.10.0
Устойчивость: 1.0 - Раннее развитие

Определите, какую систему модулей, module или commonjs, использовать для следующего:

  • Входные данные в виде строки, предоставленные через --eval или STDIN, если --input-type не указано.

  • Файлы, заканчивающиеся на .js или без расширения, если файл с расширением package.json отсутствует в той же папке или любой родительской папке.

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

Другими словами, --experimental-default-type=module переключает все места, где Node.js по умолчанию использует CommonJS, на использование модулей ECMAScript, за исключением папок и подпапок ниже node_modules, для обеспечения обратной совместимости.

В папках --experimental-default-type=module и --experimental-wasm-modules файлы без расширения будут обрабатываться как WebAssembly, если они начинаются с магического числа WebAssembly (\0asm); в противном случае они будут обрабатываться как ES-модули JavaScript.

--experimental-detect-module

Добавлен в: v20.10.0
Устойчивость: 1.1 - Активное развитие

Node.js проверит исходный код неоднозначного ввода, чтобы определить, содержит ли он синтаксис ES-модулей; если такой синтаксис будет обнаружен, ввод будет обработан как ES-модуль.

Неоднозначный ввод определяется как:

  • Файлы с расширением .js или без расширения; и либо отсутствует файл управления package.json, либо он не содержит поля type; и --experimental-default-type не указано.
  • Входные данные в виде строки (--eval или STDIN), когда ни --input-type, ни --experimental-default-type не указаны.

Синтаксис ES-модулей определяется как синтаксис, который вызовет ошибку при оценке как CommonJS. Это включает в себя следующее:

  • import инструкции (но не import() выражения, которые допустимы в CommonJS).
  • export инструкции.
  • import.meta ссылки.
  • await в верхней части модуля.
  • Лексические повторные объявления переменных оболочки CommonJS (require, module, exports, __dirname, __filename).

--experimental-import-meta-resolve

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

синхронный import.meta.resolve стал доступен по умолчанию, при этом флаг сохранился для включения экспериментального второго аргумента, как это поддерживалось ранее.

v13.9.0, v12.16.2

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

Включить экспериментальную поддержку родительского URL import.meta.resolve(), которая позволяет передавать второй аргумент parentURL для контекстного разрешения.

Ранее функция import.meta.resolve была ограничена.

--experimental-loader=module

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

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

v8.8.0

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

Использование этого флага не рекомендуется, и он может быть удалён в будущих версиях Node.js. Пожалуйста, используйте --import с register() вместо него.

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

--experimental-network-imports

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

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

--experimental-permission

Добавлен в: v20.0.0
Устойчивость: 1.1 - Активное развитие

Включить модель разрешений для текущего процесса. При включении следующие разрешения ограничены:

  • Файловая система - управляемая через --allow-fs-read, --allow-fs-write флаги
  • Процесс-потомок - управляемый через --allow-child-process флаг
  • Потоки-рабочие - управляемые через --allow-worker флаг

--experimental-policy

Добавлен в: v11.8.0
Устойчивость: 0 - Устаревший: будет удалён в ближайшее время.

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

--experimental-sea-config

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

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

--experimental-shadow-realm

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

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

--experimental-test-coverage

История
Версия Изменения
v20.1.0

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

v19.7.0, v18.15.0

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

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

--experimental-vm-modules

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

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

--experimental-wasi-unstable-preview1

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

--experimental-websocket

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

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

--force-context-aware

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

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

--force-fips

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

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

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

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

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

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

--frozen-intrinsics

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

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

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

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

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

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

-h, --help

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

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

--icu-data-dir=file

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

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

--import=module

Добавлен в: v19.0.0
Стабильность: 1 - Экспериментальный

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

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

--input-type=type

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

Это настраивает Node.js для интерпретации входных данных --eval или STDIN как модулей CommonJS или ES-модулей. Допустимые значения — "commonjs" или "module" По умолчанию используется "commonjs", если не используется --experimental-default-type=module.

REPL не поддерживает этот параметр. Использование --input-type=module с --print вызовет ошибку, так как --print не поддерживает синтаксис ES-модулей.

--insecure-http-parser

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

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

--inspect[=[host:]port]

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

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

Интеграция V8 инспектора позволяет инструментам, таким как Chrome DevTools и IDE, отлаживать и профилировать экземпляры Node.js. Инструменты подключаются к экземплярам Node.js через TCP-порт и общаются, используя протокол Chrome DevTools. См. интеграцию V8 инспектора для Node.js для получения дополнительной информации об отладчике Node.js.

Предупреждение: привязка инспектора к общедоступной комбинации IP-адрес:порт небезопасна

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

Если вы указываете хост, убедитесь, что:

  • К хосту нет доступа из общедоступных сетей.
  • Брандмауэр не допускает нежелательных подключений к порту.

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

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

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

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

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

См. интеграцию V8 инспектора для Node.js для получения дополнительной информации об отладчике Node.js.

--inspect-port=[host:]port

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

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

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

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

--inspect-publish-uid=stderr,http

Указывает способы экспонирования URL веб-соккета инспектора.

По умолчанию URL веб-соккета инспектора доступен в stderr и по адресу /json/list на http://host:port/json/list.

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

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

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

См. интеграцию V8 инспектора для Node.js для получения дополнительной информации об отладчике Node.js.

-i, --interactive

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

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

--jitless

Добавлен в: v12.0.0
Стабильность: 1 - Экспериментальный. Этот флаг унаследован от V8 и может быть изменён в upstream.

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

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

Этот параметр не имеет эффекта. Он поддерживается для совместимости.

--network-family-autoselection-attempt-timeout

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

Устанавливает значение по умолчанию для таймаута попытки автоматического выбора семейства сетей. Дополнительную информацию можно найти в net.getDefaultAutoSelectFamilyAttemptTimeout().

--no-addons

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

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

--no-deprecation

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

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

--no-experimental-fetch

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

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

--no-experimental-global-customevent

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

Отключает экспонирование CustomEvent Web API в глобальном контексте.

--no-experimental-global-webcrypto

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

Отключить экспозицию API Веб-криптографии в глобальном пространстве имен.

--no-experimental-repl-await

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

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

--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-network-family-autoselection

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

Флаг был переименован из --no-enable-network-family-autoselection в --no-network-family-autoselection. Старое имя всё ещё может работать как псевдоним.

v19.4.0

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

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

--no-warnings

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

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

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

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

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

--openssl-shared-config

Добавлен в: v18.5.0, v16.17.0, v14.21.0

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

--pending-deprecation

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

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

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

--policy-integrity=sri

Добавлен в: v12.7.0
Стабильность: 0 - Устаревший: Будет удален в ближайшее время.

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

--preserve-symlinks

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

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

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

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

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

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

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

--preserve-symlinks-main

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

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

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

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

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

-p, --print "script"

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

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

v0.6.4

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

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

--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, v16.18.0

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

v13.12.0, v12.17.0

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

v12.0.0

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

v11.8.0

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

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

--report-exclude-network

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

Исключить header.networkInterfaces из диагностического отчёта. По умолчанию не установлено, сетевые интерфейсы включены.

-r, --require module

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

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

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

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

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

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

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

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

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

--test

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

Запуск тестов теперь стабилен.

v19.2.0, v18.13.0

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

v18.1.0, v16.17.0

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

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

--test-concurrency

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

Максимальное количество файлов тестов, которые тестовый запуск CLI будет выполнять одновременно. Значение по умолчанию — os.availableParallelism() - 1.

--test-force-exit

Добавлен в: v20.14.0

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

--test-name-pattern

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

Запуск тестов теперь стабилен.

v18.11.0

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

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

--test-only

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

Запуск тестов теперь стабилен.

v18.0.0, v16.17.0

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

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

--test-reporter

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

Запуск тестов теперь стабилен.

v19.6.0, v18.15.0

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

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

--test-reporter-destination

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

Запуск тестов теперь стабилен.

v19.6.0, v18.15.0

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

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

--test-shard

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

Фрагмент набора тестов для выполнения в формате <index>/<total>, где

index — целое положительное число, индекс разделённых частей; total — целое положительное число, общее количество разделённых частей. Эта команда разделит все файлы тестов на total равных частей и выполнит только те, которые окажутся в index части.

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

node --test --test-shard=1/3
node --test --test-shard=2/3
node --test --test-shard=3/3 copy

--test-timeout

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

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

--title=title

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

Выбрасывать ошибки при устаревших методах.

--throw-deprecation

Добавлен в: 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, v16.18.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: Если это поддерживается ОС, попытка перемапирования будет предпринята. Неудача перемапирования будет проигнорирована и будет выведено сообщение в стандартный поток ошибок.
  • silent: Если это поддерживается ОС, попытка перемапирования будет предпринята. Неудача перемапирования будет проигнорирована и не будет сообщаться.

--v8-options

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

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

--v8-pool-size=num

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

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

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

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

-v, --version

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

Вывести версию Node.js.

--watch

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

Режим наблюдения теперь стабилен.

v19.2.0, v18.13.0

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

v18.11.0, v16.19.0

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

Устойчивость: 2 - Стабильно

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

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

node --watch index.js copy

--watch-path

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

Режим наблюдения теперь стабилен.

v18.11.0, v16.19.0

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

Устойчивость: 2 - Стабильно

Запускает 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.

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

FORCE_COLOR=[1, 2, 3]

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

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

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

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

NO_COLOR=<any>

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

NODE_DEBUG=module[,…]

Added in: v0.1.32

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

NODE_DEBUG_NATIVE=module[,…]

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

NODE_DISABLE_COLORS=1

Added in: v0.3.0

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

NODE_EXTRA_CA_CERTS=file

Added in: v7.3.0

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

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

Эта переменная окружения игнорируется, когда процесс Node.js запускается как setuid root или имеет установленные Linux-файловые возможности.

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

NODE_ICU_DATA=file

Added in: v0.11.15

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

NODE_NO_WARNINGS=1

Added in: v6.11.0

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

NODE_OPTIONS=options...

Added in: v8.0.0

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

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

NODE_OPTIONS='--require "./my path/file.js"' 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 представлены в следующем списке. Если опция поддерживает оба варианта --XX и --no-XX, они оба поддерживаются, но только один включён в список ниже.

  • --allow-addons
  • --allow-child-process
  • --allow-fs-read
  • --allow-fs-write
  • --allow-worker
  • --conditions, -C
  • --diagnostic-dir
  • --disable-proto
  • --disable-warning
  • --disable-wasm-trap-handler
  • --dns-result-order
  • --enable-fips
  • --enable-network-family-autoselection
  • --enable-source-maps
  • --experimental-abortcontroller
  • --experimental-default-type
  • --experimental-detect-module
  • --experimental-import-meta-resolve
  • --experimental-json-modules
  • --experimental-loader
  • --experimental-modules
  • --experimental-network-imports
  • --experimental-permission
  • --experimental-policy
  • --experimental-shadow-realm
  • --experimental-specifier-resolution
  • --experimental-top-level-await
  • --experimental-vm-modules
  • --experimental-wasi-unstable-preview1
  • --experimental-wasm-modules
  • --experimental-websocket
  • --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-wait
  • --inspect
  • --max-http-header-size
  • --napi-modules
  • --network-family-autoselection-attempt-timeout
  • --no-addons
  • --no-deprecation
  • --no-experimental-fetch
  • --no-experimental-global-customevent
  • --no-experimental-global-webcrypto
  • --no-experimental-repl-await
  • --no-extra-info-on-fatal-exception
  • --no-force-async-hooks-checks
  • --no-global-search-paths
  • --no-network-family-autoselection
  • --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-exclude-network
  • --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
  • --test-shard
  • --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[:…]

Added in: v0.1.32

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

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

NODE_PENDING_DEPRECATION=1

Added in: v8.0.0

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

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

NODE_PENDING_PIPE_INSTANCES=instances

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

NODE_PRESERVE_SYMLINKS=1

Added in: v7.1.0

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

NODE_REDIRECT_WARNINGS=file

Added in: v8.0.0

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

NODE_REPL_EXTERNAL_MODULE=file

Added in: v13.0.0, v12.16.0

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

NODE_REPL_HISTORY=file

Added in: v3.0.0

Путь к файлу, используемому для сохранения истории REPL. По умолчанию путь — ~/.node_repl_history, который переопределяется этой переменной. Установка значения в пустую строку ('' или ' ') отключает сохранение истории 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 и Source Map в указанную директорию (информация о покрытии записывается в файлы 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 объекта покрытия JSON.

source-map-cache — это объект с ключами, представляющими файлы, из которых были извлечены карты сопоставления, а значениями, которые включают URL исходной карты (в ключе url), обработанную информацию о Source Map v3 (в ключе data) и длину строк исходного файла (в ключе lineLengths).

{
  "result": [
    {
      "scriptId": "68",
      "url": "file:///absolute/path/to/source.js",
      "functions": []
    }
  ],
  "source-map-cache": {
    "file:///absolute/path/to/source.js": {
      "url": "./path-to-map.json",
      "data": {
        "version": 3,
        "sources": [
          "file:///absolute/path/to/original.js"
        ],
        "names": [
          "Foo",
          "console",
          "info"
        ],
        "mappings": "MAAMA,IACJC,YAAaC",
        "sourceRoot": "./"
      },
      "lineLengths": [
        13,
        62,
        38,
        27
      ]
    }
  }
} copy

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 в других средах, он поддерживает базовые идентификаторы часовых поясов (например, '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. 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.

UV_USE_IO_URING=value

Включить или отключить использование libuv io_uring на поддерживаемых платформах.

На поддерживаемых платформах io_uring может значительно улучшить производительность различных асинхронных операций ввода-вывода.

io_uring по умолчанию отключен из-за проблем безопасности. Когда io_uring включен, приложения не должны изменять идентификатор пользователя процесса во время выполнения. В этом случае JavaScript-функции, такие как process.setuid(), недоступны, и встроенные модули не должны вызывать системные функции, такие как setuid(2).

Эта переменная среды реализуется зависимостью Node.js и может быть удалена в будущих версиях Node.js. Поведение этой переменной среды не гарантируется.

Полезные опции 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 (в мегабайтах)

Устанавливает максимальный размер полупространства для полупространства сборщика мусора scavenge 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-v20.x/docs/api/cli.html

Spec-Zone.ru

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