Node.js предоставляет множество параметров командной строки, которые позволяют настраивать поведение среды выполнения. В этом руководстве мы рассмотрим более 100 полезных параметров и примеров их использования.
Запуск и конфигурация
node -v
// Отображает текущую версию Node.js
node --version
// Отображает текущую версию Node.js
node -e "console.log('Hello, Node.js')"
// Выполняет указанный JavaScript код
node --eval "console.log('Hello, Node.js')"
// Выполняет указанный JavaScript код
node -p "process.versions"
// Выводит информацию о версиях компонентов Node.js
node --print "process.versions"
// Выводит информацию о версиях компонентов Node.js
node --require ./my-module.js
// Предварительно загружает модуль перед выполнением кода
node -r ./my-module.js
// Предварительно загружает модуль перед выполнением кода
Дебаггинг и диагностика
node --inspect
// Запускает Node.js в режиме отладки с использованием протокола V8 Inspector
node --inspect-brk
// Запускает Node.js в режиме отладки и останавливается перед выполнением первого выражения
node --inspect-port=9229
// Устанавливает порт для отладчика
node --trace-warnings
// Включает трассировку предупреждений
node --trace-deprecation
// Включает трассировку устаревших API
node --throw-deprecation
// Преобразует предупреждения об устаревших API в ошибки
node --trace-exit
// Включает трассировку событий выхода
node --trace-uncaught
// Включает трассировку неперехваченных исключений
Настройка производительности
node --max-old-space-size=4096
// Устанавливает максимальный размер старого пространства (heap) в МБ
node --max-semi-space-size=256
// Устанавливает максимальный размер semi-пространства (young generation) в МБ
node --optimize-for-size
// Включает оптимизацию для уменьшения размера кода
node --stack-trace-limit=100
// Устанавливает максимальное количество строк в стеке вызовов
node --gc-interval=100
// Устанавливает интервал сборки мусора в миллисекундах
node --trace-gc
// Включает трассировку событий сборки мусора
Настройка модулей
node --experimental-modules
// Включает поддержку ECMAScript модулей
node --loader ./my-loader.js
// Устанавливает пользовательский загрузчик модулей
node --no-deprecation
// Отключает предупреждения об устаревших API
node --no-warnings
// Отключает все предупреждения
node --preserve-symlinks
// Оставляет символические ссылки при разрешении модулей
node --preserve-symlinks-main
// Оставляет символические ссылки при загрузке основного модуля
Настройка окружения
NODE_ENV=production node app.js
// Устанавливает переменную окружения NODE_ENV на 'production'
node --experimental-repl-await
// Включает поддержку await в REPL
node --experimental-vm-modules
// Включает поддержку модулей в контексте VM
Работа с файлами и директориями
node -i
// Запускает интерактивный REPL
node --interactive
// Запускает интерактивный REPL
node -e "fs.writeFileSync('hello.txt', 'Hello, Node.js')"
// Записывает данные в файл
node -p "fs.readFileSync('hello.txt', 'utf8')"
// Читает данные из файла
Тестирование и отладка
node --test
// Запускает встроенный тестовый раннер
node --test-reporter=spec
// Устанавливает репортер для тестового раннера
node --test-timeout=5000
// Устанавливает таймаут для тестов
Логирование и трассировка
node --trace-events-enabled
// Включает трассировку событий
node --trace-event-categories=v8,node
// Устанавливает категории для трассировки событий
node --trace-sync-io
// Включает трассировку синхронных операций ввода-вывода
Сетевые настройки
node --tls-cipher-list="HIGH"
// Устанавливает список шифров для TLS
node --tls-min-v1.2
// Устанавливает минимальную версию TLS на 1.2
node --inspect=localhost:9229
// Устанавливает хост и порт для инспектора
Работа с процессами
node --cpu-prof
// Включает профилирование процессора
node --heap-prof
// Включает профилирование кучи
node --trace-process
// Включает трассировку событий процесса
node --unhandled-rejections=strict
// Устанавливает обработку непросмотренных отказов в режим strict
Настройка файлового кеша
node --enable-fs-watch
// Включает отслеживание изменений файловой системы
node --disable-fs-events
// Отключает события файловой системы
Работа с консолью
node --no-color
// Отключает цветной вывод в консоли
node --color
// Включает цветной вывод в консоли
node --inspect=0.0.0.0:9229
// Устанавливает хост и порт для инспектора
Модули и пакеты
node --experimental-top-level-await
// Включает поддержку top-level await
node --experimental-loader ./my-loader.mjs
// Устанавливает пользовательский загрузчик модулей
node --experimental-fetch
// Включает экспериментальную поддержку глобального fetch API
Настройка памяти
node --max-old-space-size=8192
// Устанавливает максимальный размер старого пространства
(heap) в 8192 МБ
node --max-semi-space-size=512
// Устанавливает максимальный размер semi-пространства (young generation) в 512 МБ
Работа с внешними модулями
node -r dotenv/config app.js
// Загружает конфигурацию из .env файла с помощью dotenv
node -r esm app.js
// Включает поддержку ECMAScript модулей с помощью пакета esm
Система и производительность
node --prof
// Включает встроенное профилирование V8
node --prof-process isolate-0xNNNNNNNNNN-v8.log
// Обрабатывает лог профилирования V8
node --v8-options
// Выводит список всех параметров V8
Дополнительные параметры
node --input-type=module
// Устанавливает тип ввода как модуль
node --input-type=commonjs
// Устанавливает тип ввода как CommonJS
node --experimental-json-modules
// Включает поддержку JSON модулей
node --experimental-wasm-modules
// Включает поддержку WebAssembly модулей
Безопасность и шифрование
node --use-openssl-ca
// Использует сертификаты CA из OpenSSL
node --force-fips
// Включает режим FIPS (Federal Information Processing Standard)
Работа с событиями
node --trace-event-categories node,node.async_hooks
// Устанавливает категории для трассировки событий async_hooks
node --trace-event-file-pattern 'trace-*.log'
// Устанавливает шаблон имени файла для трассировки событий
Отладка и мониторинг
node --enable-source-maps
// Включает поддержку source maps для лучшей отладки
node --heap-prof-dir=./heap-profiles
// Устанавливает директорию для сохранения профилей кучи
Настройка работы с сетью
node --dns-result-order=ipv4first
// Устанавливает порядок разрешения DNS (сначала IPv4)
node --tls-min-v1.3
// Устанавливает минимальную версию TLS на 1.3
node --max-http-header-size=16384
// Устанавливает максимальный размер HTTP заголовка
Управление сигналами и событиями
node --trace-signal
// Включает трассировку сигналов
node --unhandled-rejections=warn
// Устанавливает режим обработки непросмотренных отказов на warn
Работа с WebAssembly
node --experimental-wasm-bigint
// Включает поддержку BigInt в WebAssembly
node --wasm-max-mem-pages=16384
// Устанавливает максимальное количество страниц памяти для WebAssembly
Логирование и обработка ошибок
node --abort-on-uncaught-exception
// Прерывает процесс при неперехваченном исключении
node --trace-uncaught
// Включает трассировку неперехваченных исключений
Дополнительные возможности
node --enable-network-family-autoselection
// Включает автоматический выбор семейства сетей
node --trace-tls
// Включает трассировку событий TLS
node --inspect-brk=0.0.0.0:9229
// Запускает инспектор и останавливается перед выполнением первого выражения