Когда разработчик работает с 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 предоставляет гибкий инструмент для передачи аргументов в скрипты, что позволяет сделать код более универсальным и настраиваемым.
                    
                                            Перейти в телеграм, чтобы получить результаты теста
                                        






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