Сделайте script, который принимает аргументы командной строки

Каков правильный синтаксис для запуска Node.js script с аргументами командной строки на Linux или Mac?

Чтобы запустить script без аргументов, я просто использовал бы команду node stuff.js, но в этом случае я хотел бы запустить script с именем stuff.js с аргументами "blah", "hee", "woohoo!".

Ответы

Ответ 2

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

  • yargs от Benjamin Coe
  • commander от TJ Holowaychuk
  • vorpal Дэвида Какавеллы
  • nopt от Исаака Шлютера

И для удовольствия

Ответ 3

Nomnom - еще одно возможное решение.

Ответ 4

Этот простой модуль узла также полезен: аргументы командной строки

Это позволяет определить простое определение:

const optionDefinitions = [
  { name: 'verbose', alias: 'v', type: Boolean },
  { name: 'src', type: String, multiple: true, defaultOption: true },
  { name: 'timeout', alias: 't', type: Number }  
]

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

Ответ 5

Аргументы хранятся в

process.argv и для передачи аргументов в командной строке, пожалуйста, проверьте приведенный ниже пример:

ех. В этом примере ниже я использовал модуль NPM Commander. var args = require ('commander')

Опции с помощью commander определяются с помощью метода .option(). Пример ниже анализирует аргументы и параметры из process.argv, оставляя оставшиеся аргументы в виде массива program.args, которые не были использованы параметрами. здесь process.argv - массив, содержащий аргументы командной строки. Первым элементом будет "узел", вторым элементом будет имя файла JavaScript. Следующими элементами будут любые дополнительные аргументы командной строки после выполнения.

function list(val) {
    return val.split(',');
}
args.version('0.11.2')
    .option('-t, --tag [value]', 'tags to ignore', list, undefined)
    .parse(process.argv);

здесь, чтобы получить ввод из командной строки, мы должны выполнить файл .js с -t и после этого аргументы, разделенные запятой (,), в случае нескольких аргументов ex. : node example.js -t tagname здесь я использовал список для обработки нескольких аргументов командной строки, чтобы мы могли передавать несколько аргументов командной строки ex. node example.js -t tagname1, tagname2, поэтому после этого все входные данные, переданные в качестве аргументов командной строки, будут доступны в массиве с именем args, поэтому вы можете использовать этот массив для своих целей, и вы можете прочитать больше об этом здесь: -

https://nodejs.org/docs/latest/api/process.html#process_process_argv

или вы можете использовать следующие модули:

  1. командир: -

https://www.npmjs.com/package/commander

  1. Ярги: -

https://www.npmjs.com/package/yargs

  1. ворпал: -

https://www.npmjs.com/package/vorpal