В чем разница между npm и npx
Если вы работаете с Node, то должны были сталкиваться сталкиваться с npm и npx. Хотя они звучат похоже и оба являются неотъемлемыми частями экосистемы Node, они служат разным целям. В этом посте будут рассмотрены различия между npm и npx, что поможет вам понять, когда и почему использовать каждый из них.
Что такое npm?
npm - это сокращение от Node Package Manager, является менеджером пакетов по умолчанию для Node. Он позволяет разработчикам устанавливать, делиться и управлять пакетами (библиотеками или модулями кода) в своих проектах.
Вот несколько примеров когда используется npm:
- установка новых зависимостей в проект
- управление версиями пакетов, блокировка определенных версий библиотек для обеспечения единообразия сборок
- запуск скриптов, специфичных для проекта которые определены в файле package.json
Что такое npx?
npx — это инструмент, для выполнения скриптов без их установки. В то время как npm управляет зависимостями и пакетами, npx предназначен для выполнения пакетов Node, особенно инструментов CLI, без их глобальной установки
Ключевые различия между npm и npx
1. Установка пакета vs выполнение скрипта
- NPM: Когда вы устанавливаете пакет с помощью npm, он либо устанавливает пакет глобально, либо локально в каталог вашего проекта. Это означает, что вам сначала нужно установить пакет, прежде чем вы сможете его использовать.
- NPX: С npx вы можете запускать инструменты CLI или исполняемые файлы без их глобальной установки. Например, вы можете запустить create-react-app без глобальной установки.
Это экономит время и дисковое пространство, поскольку вам не придется устанавливать пакеты, которые вы можете использовать только один раз.
2. Автоматическая обработка пакетов
Когда вы запускаете команду с npx, она автоматически проверяет, существует ли пакет локально или глобально, и если нет, она загружает и временно выполняет его. Это особенно полезно для запуска одноразовых задач.
Например:
Это загрузит пакет cowsay, если он не установлен, запустит его, а затем очистит его.
3. Исполнение скриптов в package.json
При запуске команды, определенной в скриптах package.json с использованием npm, вы должны написать:
Но с помощью npx вы можете запускать исполняемые команды напрямую:
Это особенно полезно, если скрипт явно не определен в package.json.
Когда использовать npm?
- Управление зависимостями: используйте npm для установки, обновления и удаления зависимостей проекта.
- Запуск скриптов проекта: скрипты которые определены в package.json.
- Управление версиями пакетов: блокировка определенных версий библиотек.
Когда использовать npx?
- Однократное выполнение пакета: используйте npx для пакетов, которые вы не хотите устанавливать глобально, например, для инструментов CLI, которые вы будете использовать только один раз.
- Запуск исполняемых файлов: для таких команд, как create-react-app, npx позволяет запускать их без глобальной установки.
Наконец, и npm, и npx являются важными инструментами в экосистеме Node, но они служат разным целям. Используйте npm для управления зависимостями вашего проекта, а npx — для выполнения пакетов без постоянной установки.