Чтение аргументов командной строки

JavaScript:
Чтение аргументов командной строки

Как это сделать:

Вот прямой способ сделать это в Node.js:

// process.argv содержит аргументы командной строки
const args = process.argv.slice(2);

console.log(args);

// Запустите этот скрипт с: node yourscript.js firstArg secondArg

Пример выходных данных, если вы запустите node yourscript.js pineapple 42:

['pineapple', '42']

Использование пакета, такого как yargs, упрощает жизнь, позволяя определять и получать доступ к аргументам по имени.

// Установить с помощью npm install yargs
const yargs = require('yargs/yargs');
const { hideBin } = require('yargs/helpers');
const argv = yargs(hideBin(process.argv)).argv;

console.log(argv);

// Запустите это с: node yourscript.js --fruit pineapple --number 42

И вы получите:

{ fruit: 'pineapple', number: '42' }

Чисто и ясно, с именованными параметрами.

Углубляемся

В старину аргументы считывались в C с помощью argc и argv в функции main. В Node.js используется process.argv. Это массив, где первый элемент — это путь к исполняемому файлу node, второй — имя файла скрипта, а остальные — ваши собственные аргументы.

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

Есть также пакет minimist, более легкая альтернатива yargs, если вам нравится минимализм.

В глубине души Node.js использует process.binding('options') от V8 для разбора, который не доступен обычному пользователю. Этот внутренний метод обладает огромным количеством возможностей под капотом, управляя разбором и получением параметров командной строки.

Смотрите также