Параметры командной строки
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, см. в документации по отладчику.
Параметры
Все параметры, включая параметры V8, позволяют разделять слова как дефисами (-) , так и подчеркиваниями (_). Например, --pending-deprecation эквивалентно --pending_deprecation.
Если параметр, принимающий одно значение (например, --max-http-header-size), передаётся более одного раза, то используется последнее переданное значение. Параметры из командной строки имеют приоритет над параметрами, переданными через переменную среды NODE_OPTIONS.
-
Псевдоним для stdin. Аналогично использованию - в других утилитах командной строки, что означает, что скрипт читается из stdin, а остальные параметры передаются этому скрипту.
--
Указывает конец параметров node. Остальные аргументы передаются скрипту. Если до этого не было указано имя файла скрипта или скрипт eval/print, то следующий аргумент используется как имя файла скрипта.
--abort-on-uncaught-exception
Прерывание вместо выхода вызывает создание файла ядра для постобъектного анализа с использованием отладчика (например, lldb, gdb, и mdb).
Если этот флаг передан, поведение всё равно можно настроить на не-прерывание с помощью process.setUncaughtExceptionCaptureCallback() (и с помощью модуля domain, который его использует).
--completion-bash
Выводит скрипт завершения bash для Node.js, готовый к использованию.
$ node --completion-bash > node_bash_completion $ source node_bash_completion
-C=condition, --conditions=condition
Включает экспериментальную поддержку пользовательских условий разрешения условных экспортов.
Разрешено любое количество пользовательских строковых имён условий.
Основные условия Node.js "node", "default", "import", и "require" всегда применяются в соответствии с определением.
Например, чтобы запустить модуль с разрешениями "development":
$ node -C=development app.js
--cpu-prof
Запускает профилировщик 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
Указывает директорию, в которой будут размещаться профили CPU, сгенерированные --cpu-prof.
Значение по умолчанию определяется параметром командной строки --diagnostic-dir.
--cpu-prof-interval
Указывает интервал выборки в микросекундах для профилей CPU, генерируемых --cpu-prof. По умолчанию 1000 микросекунд.
--cpu-prof-name
Указывает имя файла профиля CPU, генерируемого --cpu-prof.
--diagnostic-dir=directory
Устанавливает директорию, в которую будут записаны все файлы диагностической информации. По умолчанию - текущая рабочая директория.
Влияет на директорию вывода по умолчанию для:
--disable-proto=mode
Отключает свойство Object.prototype.__proto__. Если mode имеет значение delete, свойство полностью удаляется. Если mode имеет значение throw, обращения к свойству вызывают исключение с кодом ERR_PROTO_ACCESS.
--disallow-code-generation-from-strings
Превращает встроенные языковые возможности, такие как eval и new Function, генерирующие код из строк, в бросающие исключение. Это не влияет на модуль Node.js vm.
--dns-result-order=order
Устанавливает значение по умолчанию для verbatim в dns.lookup() и dnsPromises.lookup(). Значение может быть:
-
ipv4first: устанавливает значение по умолчанию дляverbatimfalse. -
verbatim: устанавливает значение по умолчанию дляverbatimtrue.
По умолчанию ipv4first и dns.setDefaultResultOrder() имеют более высокий приоритет, чем --dns-result-order.
--enable-fips
Включает FIPS-совместимые криптографические модули при запуске. (Требуется, чтобы Node.js был скомпилирован с FIPS-совместимым OpenSSL.)
--enable-source-maps
Включает поддержку Source Map v3 для отслеживания стека вызовов.
При использовании транспилятора, такого как TypeScript, сообщения об ошибках приложения ссылаются на транспилированный код, а не на исходное положение. --enable-source-maps позволяет кэшировать Source Map и делает всё возможное, чтобы сообщения об ошибках отображались относительно исходного файла.
Переопределение Error.prepareStackTrace предотвращает изменение стека вызовов --enable-source-maps.
--experimental-abortcontroller
Поддержка AbortController и AbortSignal включена по умолчанию. Использование этого параметра командной строки больше не требуется.
--experimental-import-meta-resolve
Включает экспериментальную поддержку import.meta.resolve().
--experimental-json-modules
Включает экспериментальную поддержку JSON для загрузчика ES Модулей.
--experimental-loader=module
Указывает module пользовательского экспериментального загрузчика ECMAScript Модулей. module может быть либо путем к файлу, либо именем ECMAScript Модуля.
--experimental-policy
Использует указанный файл в качестве политики безопасности.
--no-experimental-repl-await
Используйте этот флаг для отключения top-level await в REPL.
--experimental-specifier-resolution=mode
Устанавливает алгоритм разрешения для разрешения идентификаторов ES модулей. Допустимые значения: explicit и node.
По умолчанию используется explicit, требующее указания полного пути к модулю. Режим node включает поддержку необязательных расширений файлов и возможность импорта директорий, содержащих файл index.
См. настройку алгоритма разрешения идентификаторов ES модулей для примеров использования.
--experimental-vm-modules
Включает экспериментальную поддержку ES Модулей в модуле vm.
--experimental-wasi-unstable-preview1
Включает экспериментальную поддержку интерфейса системы WebAssembly (WASI).
--experimental-wasm-modules
Включает экспериментальную поддержку модулей WebAssembly.
--force-context-aware
Отключает загрузку нативных дополнений, которые не являются контекстно-зависимыми.
--force-fips
Принудительно включить совместимые с FIPS криптографические модули при запуске. (Не может быть отключено из кода скрипта.) (Требования такие же, как у --enable-fips.)
--frozen-intrinsics
Включить экспериментальные замороженные внутренние функции, такие как Array и Object.
Поддержка в настоящее время предоставляется только для корневого контекста, и пока не гарантируется, что global.Array фактически является ссылкой на стандартную внутреннюю функцию. Код может сломаться при использовании данного флага.
--require выполняется перед заморозкой внутренних функций, чтобы позволить добавление полифиллов.
--heapsnapshot-near-heap-limit=max_count
Записывает снимок кучи 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
Включает обработчик сигналов, который заставляет процесс 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
Запускает профилировщик кучи 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
Указывает директорию, в которую будут помещены профили кучи, сгенерированные --heap-prof.
Значение по умолчанию контролируется командной строкой --diagnostic-dir.
--heap-prof-interval
Указывает средний интервал выборки в байтах для профилей кучи, генерируемых --heap-prof. Значение по умолчанию составляет 512 * 1024 байт.
--heap-prof-name
Указывает имя файла профиля кучи, сгенерированного --heap-prof.
--icu-data-dir=file
Указывает путь к загрузке данных ICU. (Переопределяет NODE_ICU_DATA.)
--input-type=type
Настраивает Node.js на интерпретацию входных строк как CommonJS или как модулей ES. Строковый ввод поступает через --eval, --print, или STDIN.
Допустимые значения: "commonjs" и "module". По умолчанию "commonjs".
--inspect-brk[=[host:]port]
Активирует инспектор на host:port и останавливается в начале пользовательского скрипта. Значение по умолчанию host:port равно 127.0.0.1:9229.
--inspect-port=[host:]port
Устанавливает host:port для использования при активации инспектора. Полезно при активации инспектора путем отправки сигнала SIGUSR1.
Хост по умолчанию - 127.0.0.1.
См. предупреждение о безопасности ниже относительно использования параметра host.
--inspect[=[host:]port]
Активирует инспектор на 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
Использовать небезопасный парсер HTTP, который принимает недопустимые заголовки HTTP. Это может обеспечить межсетевую совместимость с нестандартными реализациями HTTP. Также это может позволить атаку на подмену запросов и другие HTTP-атаки, которые полагаются на принятие недопустимых заголовков. Избегайте использования этого параметра.
--jitless
Отключить динамическое выделение исполняемой памяти в 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
Этот параметр ничего не делает. Он поддерживается для совместимости.
--no-addons
Отключить условие экспорта node-addons, а также отключение загрузки модулей с нативными расширениями. Если указан --no-addons, вызов process.dlopen или требование модуля с нативным C++ расширением завершатся ошибкой и выбросят исключение.
--no-deprecation
Отключить предупреждения о устаревших функциях.
--no-force-async-hooks-checks
Отключает проверки async_hooks в runtime. Они всё ещё будут включены динамически, если async_hooks включен.
--no-global-search-paths
Не искать модули из глобальных путей, таких как $HOME/.node_modules и $NODE_PATH.
--no-warnings
Отключить все предупреждения процесса (включая предупреждения об устаревших функциях).
--node-memory-debug
Включает дополнительные проверки утечек памяти в внутренних компонентах Node.js. Обычно полезно только разработчикам, отлаживающим сам Node.js.
--openssl-config=file
Загружает файл конфигурации OpenSSL при запуске. Среди прочего, это может быть использовано для включения криптографии, совместимой с FIPS, если Node.js построен с поддержкой FIPS в OpenSSL.
--pending-deprecation
Выводить предупреждения об ожидаемых изменениях (устаревании).
Отложенные устаревания, в общем случае, идентичны устареванию во время выполнения, за исключением того, что они по умолчанию отключены и не будут выводиться, если не задан флаг командной строки --pending-deprecation или переменная среды NODE_PENDING_DEPRECATION=1. Отложенные устаревания используются для предоставления своеобразной избирательной системы «предупреждения заранее», которую разработчики могут использовать для обнаружения устаревшего использования API.
--policy-integrity=sri
Указывает Node.js на выдачу ошибки перед выполнением любого кода, если у политики нет указанной целостности. Ожидает строку Subresource Integrity в качестве параметра.
--preserve-symlinks
Указывает загрузчику модулей сохранить символические ссылки при разрешении и кэшировании модулей.
По умолчанию, когда 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
Указывает загрузчику модулей сохранить символические ссылки при разрешении и кэшировании главного модуля (require.main).
Этот флаг существует для того, чтобы основной модуль мог быть включен в то же поведение, что и --preserve-symlinks для всех других импортов; однако они являются отдельными флагами для обратной совместимости со старыми версиями Node.js.
--preserve-symlinks-main не подразумевает --preserve-symlinks; используйте --preserve-symlinks-main дополнительно к --preserve-symlinks когда нежелательно следовать символическим ссылкам перед разрешением относительных путей.
См. --preserve-symlinks для получения дополнительной информации.
--prof
Генерирует выходные данные профилировщика V8.
--prof-process
Обрабатывает выходные данные профилировщика V8, сгенерированные с помощью опции V8 --prof.
--redirect-warnings=file
Записывает предупреждения процесса в указанный файл вместо вывода в stderr. Файл будет создан, если он не существует, и будет добавлен, если существует. Если при попытке записи предупреждения в файл возникнет ошибка, предупреждение будет записано в stderr вместо этого.
Имя file может быть абсолютным путем. Если это не так, то по умолчанию он будет записан в каталог, контролируемый опцией командной строки --diagnostic-dir.
--report-compact
Записывает отчеты в компактном формате, однострочном JSON, более легко потребляемом системами обработки журналов, чем стандартный многострочный формат, предназначенный для просмотра человеком.
--report-dir=directory, report-directory=directory
Местоположение, в котором будет сгенерирован отчет.
--report-filename=filename
Имя файла, в который будет записан отчет.
--report-on-fatalerror
Включает создание отчета при возникновении фатальных ошибок (внутренних ошибок в среде выполнения Node.js, таких как недостаток памяти), которые приводят к завершению приложения. Полезно для анализа различных элементов диагностических данных, таких как куча, стек, состояние цикла событий, потребление ресурсов и т. д., чтобы понять причину фатальной ошибки.
--report-on-signal
Включает создание отчета при получении указанного (или предопределенного) сигнала в работающем процессе Node.js. Сигнал для запуска отчета задается через --report-signal.
--report-signal=signal
Устанавливает или сбрасывает сигнал для генерации отчета (не поддерживается в Windows). Сигнал по умолчанию SIGUSR2.
--report-uncaught-exception
Включает создание отчета при необработанных исключениях. Полезно для просмотра стека JavaScript в сочетании с родственным стеком и другими данными среды выполнения.
--secure-heap=n
Инициализирует защищенную кучу OpenSSL размером n байт. После инициализации защищенная куча используется для выделения выбранных типов в OpenSSL во время генерации ключей и других операций. Это полезно, например, для предотвращения утечки конфиденциальной информации из-за переполнения или недополнения указателей.
Размер кучи фиксированный и не может быть изменен во время выполнения, поэтому, если используется, важно выбрать достаточно большую кучу, чтобы покрыть все использования приложения.
Размер кучи должен быть степенью двойки. Любое значение меньше 2 отключит защищенную кучу.
Защищенная куча отключена по умолчанию.
Защищенная куча недоступна в Windows.
См. CRYPTO_secure_malloc_init для получения дополнительных сведений.
--secure-heap-min=n
При использовании --secure-heap, флаг --secure-heap-min задает минимальное выделение из защищенной кучи. Минимальное значение 2. Максимальное значение - меньшее из --secure-heap или 2147483647. Значение должно быть степенью двойки.
--throw-deprecation
Выбрасывать ошибки для устареваний.
--title=title
Установить process.title при запуске.
--tls-cipher-list=list
Указать альтернативный список шифров TLS по умолчанию. Требует, чтобы Node.js был скомпилирован с поддержкой криптографии (по умолчанию).
--tls-keylog=file
Записывать TLS-ключевой материал в файл. Ключевой материал в формате NSS SSLKEYLOGFILE и может использоваться программным обеспечением (таким как Wireshark) для расшифровки TLS-трафика.
--tls-max-v1.2
Установить tls.DEFAULT_MAX_VERSION в 'TLSv1.2'. Используется для отключения поддержки TLSv1.3.
--tls-max-v1.3
Установить значение по умолчанию tls.DEFAULT_MAX_VERSION в 'TLSv1.3'. Используется для включения поддержки TLSv1.3.
--tls-min-v1.0
Установить значение по умолчанию tls.DEFAULT_MIN_VERSION в 'TLSv1'. Используется для совместимости со старыми клиентами или серверами TLS.
--tls-min-v1.1
Установить значение по умолчанию tls.DEFAULT_MIN_VERSION в 'TLSv1.1'. Используется для совместимости со старыми клиентами или серверами TLS.
--tls-min-v1.2
Установить значение по умолчанию tls.DEFAULT_MIN_VERSION в 'TLSv1.2'. Это значение по умолчанию для версий 12.x и выше, но этот параметр поддерживается для совместимости со старыми версиями Node.js.
--tls-min-v1.3
Установить значение по умолчанию tls.DEFAULT_MIN_VERSION в 'TLSv1.3'. Используется для отключения поддержки TLSv1.2, которая менее безопасна, чем TLSv1.3.
--trace-atomics-wait
Печать кратких сводок вызовов Atomics.wait() в stderr. Вывод может выглядеть так:
(node:15701) [Thread 0] Atomics.wait(<address> + 0, 1, inf) started (node:15701) [Thread 0] Atomics.wait(<address> + 0, 1, inf) did not wait because the values mismatched (node:15701) [Thread 0] Atomics.wait(<address> + 0, 0, 10) started (node:15701) [Thread 0] Atomics.wait(<address> + 0, 0, 10) timed out (node:15701) [Thread 0] Atomics.wait(<address> + 4, 0, inf) started (node:15701) [Thread 1] Atomics.wait(<address> + 4, -1, inf) started (node:15701) [Thread 0] Atomics.wait(<address> + 4, 0, inf) was woken up by another thread (node:15701) [Thread 1] Atomics.wait(<address> + 4, -1, inf) was woken up by another thread
Поля соответствуют:
- Идентификатору потока, заданному
worker_threads.threadId - Базовому адресу
SharedArrayBufferв вопросе, а также смещению байтов, соответствующему индексу, переданномуAtomics.wait() - Ожидаемому значению, переданному
Atomics.wait() - Таймауту, переданному
Atomics.wait
--trace-deprecation
Печать стековых трасс для устаревших функций.
--trace-event-categories
Список категорий, разделенных запятыми, которые должны отслеживаться при включении отслеживания событий трассировки с использованием --trace-events-enabled.
--trace-event-file-pattern
Шаблон строки, определяющий путь к файлу для данных событий трассировки, поддерживает ${rotation} и ${pid}.
--trace-events-enabled
Включает сбор информации об отслеживании событий трассировки.
--trace-exit
Печать стековой трассы всякий раз, когда среда выходит из строя активно, например, вызывая process.exit().
--trace-sigint
Печать стековой трассы при SIGINT.
--trace-sync-io
Печать стековой трассы всякий раз, когда обнаруживается синхронное ввод-вывод после первого цикла события в цикле обработки событий.
--trace-tls
Печать информации о трассировке пакетов TLS в stderr. Это можно использовать для отладки проблем с подключением TLS.
--trace-uncaught
Печать стековых трасс для неперехваченных исключений; обычно печатается стековая трасса, связанная с созданием Error, в то время как это заставляет Node.js также печатать стековую трассу, связанную с выбрасыванием значения (которое не обязательно должно быть экземпляром unhandledRejection).
Включение этого параметра может отрицательно сказаться на поведении сборки мусора.
--trace-warnings
Печать стековых трасс для предупреждений процесса (включая устаревшие функции).
--track-heap-objects
Отслеживание выделения объектов кучи для снимков кучи.
--unhandled-rejections=mode
Использование этого флага позволяет изменить поведение при возникновении необработанного отклонения. Можно выбрать один из следующих режимов:
-
throw: ВыдатьunhandledRejection. Если этот обработчик не задан, вызовите необработанное отклонение как неперехваченное исключение. Это значение по умолчанию. -
strict: Вызовите необработанное отклонение как неперехваченное исключение. -
warn: Всегда вызывать предупреждение, независимо от того, установлен ли обработчикunhandledRejectionили нет, но не выводить предупреждение об устаревании. -
warn-with-error-code: ВыдатьunhandledRejection. Если этот обработчик не задан, вызовите предупреждение и установите код завершения процесса в 1. -
none: Заглушить все предупреждения.
--use-bundled-ca, --use-openssl-ca
Использовать встроенный хранилище сертификатов Mozilla, поставляемое с текущей версией Node.js, или использовать хранилище сертификатов по умолчанию OpenSSL. Хранилище по умолчанию выбирается на этапе сборки.
Встроенное хранилище сертификатов, предоставляемое Node.js, представляет собой снимок хранилища сертификатов Mozilla, который фиксируется на момент выпуска. Оно идентично на всех поддерживаемых платформах.
Использование хранилища OpenSSL позволяет выполнять внешние изменения хранилища. Для большинства дистрибутивов Linux и BSD это хранилище поддерживается системными администраторами. Расположение хранилища сертификатов OpenSSL зависит от конфигурации библиотеки OpenSSL, но это можно изменить во время выполнения, используя переменные среды.
См. SSL_CERT_DIR и SSL_CERT_FILE.
--use-largepages=mode
Переназначить статический код Node.js на страницы большой памяти при запуске. Если это поддерживается на целевой системе, это приведет к перемещению статического кода Node.js на страницы размером 2 МБ вместо 4 КБ.
Для mode допустимы следующие значения:
-
off: Картирование не будет выполнено. Это значение по умолчанию. -
on: Если операционная система поддерживает, будет выполнено картирование. Ошибка картирования будет проигнорирована, и сообщение будет выведено в стандартный вывод ошибок. -
silent: Если операционная система поддерживает, будет выполнено картирование. Ошибка картирования будет проигнорирована и не будет сообщена.
--v8-options
Печать параметров командной строки V8.
--v8-pool-size=num
Установить размер пула потоков V8, который будет использоваться для выделения фоновых задач.
Если задано 0 , то V8 выберет подходящий размер пула потоков, исходя из количества доступных процессоров.
Если предоставленное значение больше максимального для V8, то будет выбрано максимальное значение.
--zero-fill-buffers
Автоматически заполняет нулями все недавно выделенные экземпляры Buffer и SlowBuffer.
-c, --check
Синтаксическая проверка скрипта без выполнения.
-e, --eval "script"
Оценить следующий аргумент как JavaScript. Модули, которые предопределены в REPL, также могут быть использованы в script.
В Windows, при использовании cmd.exe одиночная кавычка не будет работать правильно, так как она распознаёт только двойные " для цитирования. В Powershell или Git bash, ' и " оба могут быть использованы.
-h, --help
Печать параметров командной строки node. Вывод этого параметра менее подробен, чем в этом документе.
-i, --interactive
Открывает REPL даже если stdin не кажется терминалом.
-p, --print "script"
Идентично -e но печатает результат.
-r, --require module
Предварительная загрузка указанного модуля при запуске.
Следует правилам разрешения модулей require(). module может быть либо путём к файлу, либо именем модуля node.
Поддерживаются только модули CommonJS. Попытка предварительной загрузки ES6-модуля с использованием --require завершится ошибкой.
-v, --version
Печать версии 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[,…]
Список модулей ядра, разделенных через ',', для которых должен выводиться отладочная информация.
NODE_DEBUG_NATIVE=module[,…]
Список модулей ядра на C++, разделенных через ',', для которых должен выводиться отладочная информация.
NODE_DISABLE_COLORS=1
При установке, цвета не будут использоваться в REPL.
NODE_EXTRA_CA_CERTS=file
При установке, общеизвестные корневые центры сертификации (например, 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
Путь к данным ICU (объект Intl данных. Будет расширять связанные данные при компиляции с поддержкой small-icu.
NODE_NO_WARNINGS=1
При установке в 1, предупреждения процесса будут подавлены.
NODE_OPTIONS=options...
Список командных опций, разделенных пробелами. 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[:…]
Список директорий, разделенных через ':', которые добавляются в путь поиска модулей.
В Windows это список, разделенный через ';'.
NODE_PENDING_DEPRECATION=1
При установке в 1, выводятся предупреждения о предстоящем устаревании.
Предстоящие устаревания, как правило, идентичны предупреждениям о устаревании во время выполнения, за исключением того, что они по умолчанию выключены и не будут выводиться, если не установлен командный флаг --pending-deprecation, или переменная окружения NODE_PENDING_DEPRECATION=1. Предстоящие устаревания используются для обеспечения механизма селективного "предупреждения" для разработчиков, которые могут использовать его для обнаружения использования устаревших API.
NODE_PENDING_PIPE_INSTANCES=instances
Установите количество задержки обработчиков экземпляров каналов, когда сервер канала ожидает подключения. Это значение применяется только к Windows.
NODE_PRESERVE_SYMLINKS=1
При установке в 1, загрузчик модулей сохранит символические ссылки при разрешении и кэшировании модулей.
NODE_REDIRECT_WARNINGS=file
При установке, предупреждения процесса будут выводиться в указанный файл вместо вывода в stderr. Файл будет создан, если он не существует, и к нему будет добавлен текст, если он существует. Если при попытке записать предупреждение в файл произойдет ошибка, предупреждение будет записано в stderr вместо этого. Это эквивалентно использованию командного флага --redirect-warnings=file.
NODE_REPL_HISTORY=file
Путь к файлу, используемому для хранения постоянной истории REPL. Путь по умолчанию - ~/.node_repl_history, который переопределяется этой переменной. Установка значения в пустую строку ('' или ' ') отключает постоянную историю REPL.
NODE_REPL_EXTERNAL_MODULE=file
Путь к модулю Node.js, который будет загружен вместо встроенного REPL. Переопределение этого значения пустой строкой ('') приведет к использованию встроенного REPL.
NODE_SKIP_PLATFORM_CHECK=value
Если 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": []
}
]
} Кэш карт исходного кода
Если найдены, данные карт исходного кода добавляются к ключевому уровню 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
Загрузить файл конфигурации OpenSSL при запуске. Среди прочего, это может быть использовано для активации криптографии, соответствующей стандарту FIPS, если Node.js построен с ./configure --openssl-fips.
Если используется командная опция --openssl-config, переменная окружения игнорируется.
SSL_CERT_DIR=dir
Если --use-openssl-ca включено, это переопределяет и устанавливает каталог OpenSSL, содержащий доверенные сертификаты.
Обратите внимание, что если среда дочерних процессов не задана явно, эта переменная окружения унаследуется всеми дочерними процессами, и если они используют OpenSSL, это может привести к тому, что они будут доверять тем же ЦС, что и узел.
SSL_CERT_FILE=file
Если --use-openssl-ca включено, это переопределяет и устанавливает файл OpenSSL, содержащий доверенные сертификаты.
Обратите внимание, что если среда дочерних процессов не задана явно, эта переменная окружения унаследуется всеми дочерними процессами, и если они используют OpenSSL, это может привести к тому, что они будут доверять тем же ЦС, что и узел.
TZ
Переменная окружения 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, использующие пул потоков:
- все
fsAPI, кроме API мониторинга файлов и тех, которые явно синхронные - асинхронные криптографические API, такие как
crypto.pbkdf2(),crypto.scrypt(),crypto.randomBytes(),crypto.randomFill(),crypto.generateKeyPair() dns.lookup()- все
zlibAPI, кроме тех, которые явно синхронные
Поскольку пул потоков 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