Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Как прочитать аргументы командной строки в Node.js

Короткий ответ

process.argv — массив: путь к node, путь к скрипту, а затем ваши аргументы. Пропустите первые два. Для команды node app.js input.txt:

const args = process.argv.slice(2);
 
console.log(args);
console.log('file:', args[0]);

Результат:

[ 'input.txt' ]
file: input.txt

Опции

parseArgs() из node:util понимает опции вида --verbose и --out=report.txt:

import { parseArgs } from 'node:util';
 
const { values, positionals } = parseArgs({
  args: ['input.txt', '--out=report.txt', '--verbose'],
  options: {
    out: { type: 'string', default: 'result.txt' },
    verbose: { type: 'boolean', short: 'v' },
  },
  allowPositionals: true,
});
 
console.log(positionals, values.out, values.verbose);

Результат:

[ 'input.txt' ] report.txt true

Без параметра args parseArgs() читает настоящий process.argv. Здесь аргументы переданы явно, чтобы показать результат.

Частая ошибка

Все аргументы — строки, даже числа. А если пользователь не передал аргумент, он равен undefined, поэтому проверяйте его:

const count = process.argv[3];
 
if (count === undefined) {
  console.log('Usage: node app.js <file> <count>');
} else {
  console.log(Number(count) + 1);
}

Результат:

Usage: node app.js <file> <count>

Функции из этого ответа

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.