Когда вы хотите попробовать какой-нибудь CLI-инструмент, обычный путь такой: установить глобально через npm install -g, попользоваться, а потом забыть удалить. Со временем в системе накапливаются десятки глобально установленных пакетов разных версий, которые начинают конфликтовать друг с другом.

npx решает эту проблему: он запускает пакет напрямую из реестра npm, не устанавливая его глобально. Запустили — и пакет не остался в системе.

Как это выглядит

Допустим, в хотите создать новый проект на Vite:

npx create-vite my-app

npx скачает свежую версию create-vite, запустит её, создаст проект — и на этом всё, ничего лишнего в системе не останется. Сравните с устаревшим подходом:

# старый способ
npm install -g create-vite
create-vite my-app

# современный способ
npx create-vite my-app

Что происходит внутри

Когда вы пишете npx имя-пакета, инструмент проверяет три места по порядку:

  1. node_modules/.bin в текущем проекте — может быть, пакет уже установлен локально
  2. Временный кеш на вашем компьютере — возможно, недавно уже запускался
  3. Реестр npm — скачивает и запускает

Если пакет нашёлся в проекте или кеше — запускается оттуда. Если нет — скачивается свежая версия.

Запуск конкретной версии

Можно явно указать версию через @:

npx create-react-app@5 my-app
npx prettier@2 --write .

Это особенно полезно, когда нужно проверить поведение в старой версии или воспроизвести чужую ошибку.

Запуск локальных скриптов

npx умеет запускать не только пакеты из npm, но и локально установленные инструменты без прописывания полного пути:

# вместо ./node_modules/.bin/eslint src/
npx eslint src/

Популярные команды, которые запускают через npx

npx create-vite my-app          # новый проект на Vite
npx create-react-app my-app     # новый проект на React
npx serve .                     # быстрый статический сервер
npx prettier --write .          # отформатировать весь проект
npx playwright install          # установить браузеры для тестов

Попробуйте сами

// нажмите на команду ниже

Что запомнить

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

Чтобы лучше понять, как npm устроен изнутри — читайте про автоматизацию вёрстки с npm и package.json и как искать и выбирать npm-пакеты.


«Доктайп» — журнал о фронтенде. Читайте, слушайте и учитесь с нами.

ТелеграмПодкастБесплатные учебники