npx и npm: сравнение инструментов командной строки Node.js

«npx vs npm» — это сравнение двух популярных инструментов командной строки в экосистеме Node.js.

  1. Цель:

    • npm: npm (диспетчер пакетов узлов) в основном используется для управления и установки пакетов из реестра npm. Он управляет зависимостями проекта и помогает управлять версиями и распространением пакетов.
    • npx: npx — это инструмент, входящий в состав npm, начиная с версии 5.2.0. Он используется для выполнения пакетов Node без необходимости их глобальной установки.
  2. Установка пакетов:

    • npm: Чтобы установить пакет глобально, вы можете использовать команду npm install -g <имя-пакета>. Это делает пакет доступным во всей системе.
    • npx: пакеты можно запускать напрямую, не устанавливая их глобально с помощью npx. Например, npx create-react-app my-appсоздаст новое приложение React без необходимости глобальной установки create-react-app.
  3. Выполнение:

    • npm: Чтобы запустить пакет, установленный глобально, вы должны использовать команду npm run . Он выполняет указанный скрипт, определенный в файле package.json.
    • npx: с помощью npx вы можете запустить пакет без необходимости глобальной установки. Например, npx webpackвыполнит локально установленный пакет веб-пакета.
  4. Запуск определенных версий пакета:

    • npm: чтобы запустить определенную версию глобально установленного пакета, вам необходимо установить эту конкретную версию глобально.
    • npx: с помощью npx вы можете запустить определенную версию пакета, не устанавливая его глобально. Например, npx -p webpack@4 webpackзапустит веб-пакет версии 4 без необходимости глобальной установки.
  5. Выполнение одноразовых команд:

    • npm: npm не предназначен для прямого выполнения одноразовых команд.
    • npx: npx специально разработан для выполнения одноразовых команд. Например, npx eslint --initинициализирует ESLint для вашего проекта без необходимости глобальной установки ESLint.
  6. Выбор между npx и npm:

    • Используйте npm, если хотите управлять зависимостями и устанавливать пакеты глобально.
    • Используйте npx, когда вам нужно запускать одноразовые команды, выполнять локально установленные пакеты или запускать определенные версии пакетов без их глобальной установки.