Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг Управление проектами
7 профессий по цене одной
07:05:47:06
дн. ч. мин. сек.
06 Июл 2023
2 мин
512

Передача аргументов командной строки в npm script

Когда разработчик работает с JavaScript и Node.js, часто возникает необходимость запускать скрипты с помощью npm (Node Package Manager). В файле package.json есть раздел scripts,

Когда разработчик работает с JavaScript и Node.js, часто возникает необходимость запускать скрипты с помощью npm (Node Package Manager). В файле package.json есть раздел scripts, который позволяет определить набор команд для выполнения определенных задач, таких как запуск сервера или тестов.

Вот пример того, как может выглядеть раздел scripts в package.json:

«scripts»: {
«start»: «node ./script.js server»
}

В этом случае, команда npm start запустит script.js с аргументом server. Это очень удобно, но что если бы разработчик хотел передавать дополнительные аргументы в свои скрипты? Например, номер порта для сервера. Возможно ли это сделать?

Действительно, npm предоставляет такую возможность. Чтобы передать аргументы в скрипт, они должны быть указаны после двойного тире --. Например, если бы разработчик хотел передать порт 8080, команда для этого выглядела бы следующим образом:

npm start -- 8080

Это гарантирует, что аргумент 8080 будет передан в скрипт script.js. Однако, чтобы использовать этот аргумент в скрипте, его необходимо явно обрабатывать. Для этого в Node.js есть глобальный объект process, который имеет свойство argv — массив, содержащий аргументы командной строки, переданные скрипту. В этом массиве первыми двумя элементами всегда являются путь к исполняемому файлу Node.js и путь к выполняемому скрипту. Остальные элементы — это аргументы, переданные скрипту.

Вернувшись к нашему примеру, чтобы обработать аргумент порта в script.js, можно использовать следующий код:

const port = process.argv[2] || 'default port';

Здесь process.argv[2] обращается к третьему элементу массива argv (индексация начинается с нуля), который будет содержать наш переданный аргумент порта. Если аргумент не был передан, будет использоваться значение ‘default port’.

Таким образом, npm предоставляет гибкий инструмент для передачи аргументов в скрипты, что позволяет сделать код более универсальным и настраиваемым.

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

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