node repl history что это

Node.js v17.3.0 documentation

Source Code: lib/repl.js

The repl module provides a Read-Eval-Print-Loop (REPL) implementation that is available both as a standalone program or includible in other applications. It can be accessed using:

Design and features #

Instances of repl.REPLServer support automatic completion of inputs, completion preview, simplistic Emacs-style line editing, multi-line inputs, ZSH-like reverse-i-search, ZSH-like substring-based history search, ANSI-styled output, saving and restoring current REPL session state, error recovery, and customizable evaluation functions. Terminals that do not support ANSI styles and Emacs-style line editing automatically fall back to a limited feature set.

Commands and special keys #

The following special commands are supported by all REPL instances:

The following key combinations in the REPL have these special effects:

Default evaluation #

By default, all instances of repl.REPLServer use an evaluation function that evaluates JavaScript expressions and provides access to Node.js built-in modules. This default behavior can be overridden by passing in an alternative evaluation function when the repl.REPLServer instance is created.

JavaScript expressions #

The default evaluator supports direct evaluation of JavaScript expressions:

Global and local scope #

The default evaluator provides access to any variables that exist in the global scope. It is possible to expose a variable to the REPL explicitly by assigning it to the context object associated with each REPLServer :

Properties in the context object appear as local within the REPL:

Context properties are not read-only by default. To specify read-only globals, context properties must be defined using Object.defineProperty() :

Accessing core Node.js modules #
Global uncaught exceptions #

The ‘uncaughtException’ event is from now on triggered if the repl is used as standalone program.

The REPL uses the domain module to catch all uncaught exceptions for that REPL session.

This use of the domain module in the REPL has these side effects:

Assignment of the _ (underscore) variable #

Added _error support.

The default evaluator will, by default, assign the result of the most recently evaluated expression to the special variable _ (underscore). Explicitly setting _ to a value will disable this behavior.

Similarly, _error will refer to the last seen error, if there was any. Explicitly setting _error to a value will disable this behavior.

await keyword #

Support for the await keyword is enabled at the top level.

One known limitation of using the await keyword in the REPL is that it will invalidate the lexical scoping of the const and let keywords.

Reverse-i-search #

The REPL supports bi-directional reverse-i-search similar to ZSH. It is triggered with Ctrl + R to search backward and Ctrl + S to search forwards.

Duplicated history entries will be skipped.

Changing the direction immediately searches for the next entry in the expected direction from the current position on.

Custom evaluation functions #

When a new repl.REPLServer is created, a custom evaluation function may be provided. This can be used, for instance, to implement fully customized REPL applications.

The following illustrates a hypothetical example of a REPL that performs translation of text from one language to another:

Recoverable errors #

At the REPL prompt, pressing Enter sends the current line of input to the eval function. In order to support multi-line input, the eval function can return an instance of repl.Recoverable to the provided callback function:

Customizing REPL output #

By default, repl.REPLServer instances format output using the util.inspect() method before writing the output to the provided Writable stream ( process.stdout by default). The showProxy inspection option is set to true by default and the colors option is set to true depending on the REPL’s useColors option.

The useColors boolean option can be specified at construction to instruct the default writer to use ANSI style codes to colorize the output from the util.inspect() method.

To fully customize the output of a repl.REPLServer instance pass in a new function for the writer option on construction. The following example, for instance, simply converts any input text to upper case:

Class: REPLServer #

Instances of repl.REPLServer are created using the repl.start() method or directly using the JavaScript new keyword.

Event: ‘exit’ #

Event: ‘reset’ #

This can be used primarily to re-initialize REPL context to some pre-defined state:

replServer.defineCommand(keyword, cmd) #

The following example shows two new commands added to the REPL instance:

The new commands can then be used from within the REPL instance:

replServer.displayPrompt([preserveCursor]) #

The replServer.displayPrompt() method readies the REPL instance for input from the user, printing the configured prompt to a new line in the output and resuming the input to accept new input.

When multi-line input is being entered, an ellipsis is printed rather than the ‘prompt’.

The replServer.displayPrompt method is primarily intended to be called from within the action function for commands registered using the replServer.defineCommand() method.

replServer.clearBufferedCommand() #

The replServer.clearBufferedCommand() method clears any command that has been buffered but not yet executed. This method is primarily intended to be called from within the action function for commands registered using the replServer.defineCommand() method.

replServer.parseREPLKeyword(keyword[, rest]) #

replServer.setupHistory(historyPath, callback) #

Initializes a history log file for the REPL instance. When executing the Node.js binary and using the command-line REPL, a history file is initialized by default. However, this is not the case when creating a REPL programmatically. Use this method to initialize a history log file when working with REPL instances programmatically.

repl.builtinModules #

repl.start([options]) #

The preview option is now available.

The terminal option now follows the default description in all cases and useColors checks hasColors() if available.

The REPL_MAGIC_MODE replMode was removed.

The breakEvalOnSigint option is supported now.

The options parameter is optional now.

The repl.start() method creates and starts a repl.REPLServer instance.

If options is a string, then it specifies the input prompt:

The Node.js REPL #

Environment variable options #

Various behaviors of the Node.js REPL can be customized using the following environment variables:

Persistent history #

Using the Node.js REPL with advanced line-editors #

Starting multiple REPL instances against a single running instance #

It is possible to create and run multiple REPL instances against a single running instance of Node.js that share a single global object but have separate I/O interfaces.

Источник

Модуль repl¶

В repl Модуль предоставляет реализацию Read-Eval-Print-Loop (REPL), которая доступна как отдельная программа или может быть включена в другие приложения. Доступ к нему можно получить, используя:

Дизайн и особенности¶

Экземпляры repl.REPLServer поддержка автоматического завершения ввода, предварительного просмотра завершения, упрощенного редактирования строк в стиле Emacs, многострочного ввода, ZSH-подобный обратный i-поиск, ZSH-подобный поиск в истории на основе подстроки, вывод в стиле ANSI, сохранение и восстановление текущего состояния сеанса REPL, восстановление после ошибок и настраиваемые функции оценки. Терминалы, которые не поддерживают стили ANSI и редактирование строк в стиле Emacs, автоматически возвращаются к ограниченному набору функций.

Команды и специальные клавиши¶

Все экземпляры REPL поддерживают следующие специальные команды:

Следующие комбинации клавиш в REPL имеют эти специальные эффекты:

Оценка по умолчанию¶

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

Выражения JavaScript¶

Оценщик по умолчанию поддерживает прямую оценку выражений JavaScript:

Глобальный и локальный охват¶

Оценщик по умолчанию обеспечивает доступ ко всем переменным, существующим в глобальной области видимости. Можно явно предоставить переменную REPL, присвоив ее context объект, связанный с каждым REPLServer :

Недвижимость в context объект отображается как локальный в REPL:

Свойства контекста по умолчанию не доступны только для чтения. Чтобы указать глобальные объекты только для чтения, свойства контекста должны быть определены с помощью Object.defineProperty() :

Доступ к основным модулям Node.js¶

Глобальные неперехваченные исключения¶

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

Это использование domain модуль в REPL имеет следующие побочные эффекты:

Присвоение _ (подчеркивание) переменная¶

Оценщик по умолчанию по умолчанию присваивает результат последнего оцененного выражения специальной переменной. _ (подчеркивать). Явная установка _ значение отключит это поведение.

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

await ключевое слово¶

Поддержка await ключевое слово включено на верхнем уровне.

Одно известное ограничение использования await ключевое слово в REPL состоит в том, что оно сделает недействительной лексическую область видимости const а также let ключевые слова.

Обратный поиск¶

REPL поддерживает двунаправленный обратный i-поиск, аналогичный ZSH. Он запускается с помощью Ctrl + р искать назад и Ctrl + S искать вперед.

Повторяющиеся записи в истории будут пропущены.

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

Пользовательские оценочные функции¶

Когда новый repl.REPLServer создается пользовательская функция оценки. Это можно использовать, например, для реализации полностью настраиваемых приложений REPL.

Ниже показан гипотетический пример REPL, который выполняет перевод текста с одного языка на другой:

Исправимые ошибки¶

В приглашении REPL нажатие Входить отправляет текущую строку ввода в eval функция. Для поддержки многострочного ввода eval функция может возвращать экземпляр repl.Recoverable к предоставленной функции обратного вызова:

Настройка вывода REPL¶

По умолчанию, repl.REPLServer Экземпляры форматируют вывод с помощью util.inspect() перед записью вывода в предоставленный Writable транслировать ( process.stdout по умолчанию). В showProxy для параметра проверки по умолчанию установлено значение true, а параметр colors для параметра установлено значение true в зависимости от REPL useColors вариант.

В useColors логическая опция может быть указана при построении, чтобы указать модулю записи по умолчанию использовать коды стиля ANSI для раскрашивания вывода из util.inspect() метод.

Чтобы полностью настроить вывод repl.REPLServer экземпляр передать новую функцию для writer вариант на строительство. В следующем примере, например, просто преобразуется любой вводимый текст в верхний регистр:

Класс: REPLServer ¶

Экземпляры repl.REPLServer создаются с использованием repl.start() метод или напрямую с помощью JavaScript new ключевое слово.

Событие: ‘exit’ ¶

Событие: ‘reset’ ¶

Это можно использовать в первую очередь для повторной инициализации контекста REPL до некоторого предопределенного состояния:

replServer.defineCommand(keyword, cmd) ¶

В следующем примере показаны две новые команды, добавленные в экземпляр REPL:

Затем новые команды можно использовать из экземпляра REPL:

replServer.displayPrompt([preserveCursor]) ¶

В replServer.displayPrompt() подготавливает экземпляр REPL для ввода от пользователя, распечатывая настроенный prompt на новую строку в output и возобновив input принять новый ввод.

При вводе многострочного ввода печатается многоточие, а не «подсказка».

В replServer.displayPrompt в первую очередь предназначен для вызова из функции действия для команд, зарегистрированных с помощью replServer.defineCommand() метод.

replServer.clearBufferedCommand() ¶

В replServer.clearBufferedCommand() удаляет все команды, которые были помещены в буфер, но еще не выполнены. Этот метод в первую очередь предназначен для вызова из функции действия для команд, зарегистрированных с помощью replServer.defineCommand() метод.

replServer.parseREPLKeyword(keyword[, rest]) ¶

replServer.setupHistory(historyPath, callback) ¶

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

repl.builtinModules ¶

repl.start([options]) ¶

В repl.start() метод создает и запускает repl.REPLServer пример.

Если options является строкой, тогда она указывает вводную подсказку:

REPL для Node.js¶

Параметры переменных среды¶

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

Постоянная история¶

Использование Node.js REPL с продвинутыми линейными редакторами¶

Запуск нескольких экземпляров REPL против одного запущенного экземпляра¶

Можно создать и запустить несколько экземпляров REPL для одного запущенного экземпляра Node.js, который использует один global объект, но имеют отдельные интерфейсы ввода-вывода.

Источник

REPL — настройка для сохранения истории и загрузка модулей по умолчанию

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

В этой небольшой заметке я описываю как настроить REPL(read-eval-print loop) или «консоль» Node JS и при этом не потерять приятную плюшку — сохранение истории. Последние версии Node автоматически сохраняют историю между сеансами в REPL в файле

/.node_repl_history Но есть одна загвоздка, если вы хотите настроить REPL «под себя», тогда история сеансов автоматически сохраняться прекращает.

Раньше для сохранения истории использовался отдельный пакет rlwrap(ReadLine Wrap).
Который позволяет например разукрашивать promt консоли, но при использовании rlwrap перестает работать автозавершение(autocomple) команд по клавише Tab. По этому его использовать не буду.

Кроме того в контекст REPL сразу загрузим часто используемые модули, такие как axios и lodash.

Иногда для модулей lodash или underscore используют символ подчёркивание _
В REPL этого делать не следует, так как этот символ имеет специальное значение — результат предыдущей операции.

По умолчанию если ввести

или любой другой код в результате которого ничего не возвращается или правильнее сказать возвращатся undefined, в консоли выведется это самое undefined, что как по мне раздражает.
За это поведение отвечает параметр
ignoreUndefined: true

Другой параметр: replMode: Repl.REPL_MODE_STRICT,.Это эквивалент ‘use strict’;. То есть теперь, например, не получится присвоить переменной значение без ее объявления.

выдаст ошибку и нужно писать

Все параметры REPL описаны на сайте Node

Остальной код интуитивной понятен.

В предыдущем варианте сохранение происходило только при выходе из REPL.

Источник

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

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

Синопсис¶

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

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

Параметры¶

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

—abort-on-uncaught-exception ¶

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

—completion-bash ¶

Распечатать исходный сценарий завершения bash для Node.js.

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

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

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

—cpu-prof ¶

Запускает профилировщик ЦП V8 при запуске и записывает профиль ЦП на диск перед выходом.

—cpu-prof-dir ¶

—cpu-prof-interval ¶

—cpu-prof-name ¶

—diagnostic-dir=directory ¶

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

Влияет на выходной каталог по умолчанию:

—disable-proto=mode ¶

—disallow-code-generation-from-strings ¶

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

—dns-result-order=order ¶

—enable-fips ¶

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

—enable-source-maps ¶

Давать возможность Исходная карта v3 поддержка трассировки стека.

—experimental-abortcontroller ¶

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

—experimental-import-meta-resolve ¶

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

—experimental-json-modules ¶

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

—experimental-loader=module ¶

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

—experimental-modules ¶

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

—experimental-policy ¶

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

—no-experimental-repl-await ¶

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

—experimental-specifier-resolution=mode ¶

—experimental-vm-modules ¶

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

—experimental-wasi-unstable-preview1 ¶

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

—experimental-wasm-modules ¶

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

—force-context-aware ¶

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

—force-fips ¶

—frozen-intrinsics ¶

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

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

—heapsnapshot-near-heap-limit=max_count ¶

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

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

—heapsnapshot-signal=signal ¶

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

—heap-prof ¶

Запускает профилировщик кучи V8 при запуске и записывает профиль кучи на диск перед выходом.

—heap-prof-dir ¶

—heap-prof-interval ¶

—heap-prof-name ¶

—icu-data-dir=file ¶

—input-type=type ¶

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

—inspect-port=[host:]port ¶

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

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

—inspect[=[host:]port] ¶

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

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

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

При указании хоста убедитесь, что:

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

—inspect-publish-uid=stderr,http ¶

Укажите способы раскрытия url-адреса веб-сокета инспектора.

—insecure-http-parser ¶

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

—jitless ¶

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

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

—max-http-header-size=size ¶

—napi-modules ¶

Этот вариант не работает. Сохранено для совместимости.

—no-addons ¶

—no-deprecation ¶

Предупреждения об устаревании тишины.

—no-extra-info-on-fatal-exception ¶

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

—no-force-async-hooks-checks ¶

—no-global-search-paths ¶

—no-warnings ¶

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

—node-memory-debug ¶

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

—openssl-config=file ¶

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

—pending-deprecation ¶

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

—policy-integrity=sri ¶

Сообщает Node.js об ошибке перед запуском любого кода, если политика не имеет указанной целостности. Ожидается Целостность подресурсов строка в качестве параметра.

—preserve-symlinks ¶

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

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

—preserve-symlinks-main ¶

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

Сгенерировать выходные данные профилировщика V8.

—prof-process ¶

—redirect-warnings=file ¶

Записывать предупреждения процесса в указанный файл вместо печати в stderr. Файл будет создан, если он не существует, и будет добавлен к нему, если он существует. Если при попытке записать предупреждение в файл возникает ошибка, вместо этого предупреждение будет записано в stderr.

—report-compact ¶

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

Место, в котором будет создан отчет.

—report-filename=filename ¶

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

—report-on-fatalerror ¶

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

—report-on-signal ¶

—report-signal=signal ¶

—report-uncaught-exception ¶

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

—secure-heap=n ¶

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

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

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

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

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

—secure-heap-min=n ¶

—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. Результат может выглядеть так:

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

—trace-deprecation ¶

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

—trace-event-categories ¶

—trace-event-file-pattern ¶

—trace-events-enabled ¶

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

—trace-exit ¶

—trace-sigint ¶

Печатает трассировку стека на SIGINT.

—trace-sync-io ¶

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

—trace-tls ¶

—trace-uncaught ¶

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

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

—trace-warnings ¶

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

—track-heap-objects ¶

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

—unhandled-rejections=mode ¶

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

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

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

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

—use-largepages=mode ¶

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

Следующие значения действительны для mode :

—v8-options ¶

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

—v8-pool-size=num ¶

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

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

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

—zero-fill-buffers ¶

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

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

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

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

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

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

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

Версия узла печати.

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

FORCE_COLOR=[1, 2, 3] ¶

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

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

NODE_DEBUG=module[,…] ¶

NODE_DEBUG_NATIVE=module[,…] ¶

NODE_DISABLE_COLORS=1 ¶

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

NODE_EXTRA_CA_CERTS=file ¶

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

Эта переменная среды игнорируется, когда node запускается как 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 ¶

NODE_OPTIONS=options. ¶

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

Одноэлементный флаг, переданный как параметр командной строки, переопределит тот же флаг, переданный в NODE_OPTIONS :

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

Допустимые параметры Node.js:

Допустимые параметры V8:

NODE_PATH=path[:…] ¶

NODE_PENDING_DEPRECATION=1 ¶

NODE_PENDING_PIPE_INSTANCES=instances ¶

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

NODE_PRESERVE_SYMLINKS=1 ¶

NODE_REDIRECT_WARNINGS=file ¶

NODE_REPL_HISTORY=file ¶

Путь к файлу, который используется для хранения постоянной истории REPL. Путь по умолчанию:

NODE_REPL_EXTERNAL_MODULE=file ¶

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

NODE_SKIP_PLATFORM_CHECK=value ¶

NODE_TLS_REJECT_UNAUTHORIZED=value ¶

NODE_V8_COVERAGE=dir ¶

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

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

Выходное покрытие¶

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

Кеш исходной карты¶

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

NO_COLOR= ¶

OPENSSL_CONF=file ¶

SSL_CERT_DIR=dir ¶

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

SSL_CERT_FILE=file ¶

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

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

UV_THREADPOOL_SIZE=size ¶

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

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

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

Полезные параметры V8¶

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

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

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

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *