npm давно перестал быть просто установщиком пакетов. Сегодня это еще и нормальный рабочий интерфейс к проекту: через него удобно запускать скрипты, проверять зависимости, открывать документацию и разбираться, что именно происходит в node_modules.
Проблема в том, что многие команды остаются “фоновыми”: о них знаешь, когда случайно встретил в чужом проекте или документации. В итоге часть рутинных действий все равно делается вручную.
Ниже собраны семь приемов npm, которые действительно помогают в повседневной разработке, а не выглядят как редкие CLI-фокусы.
- Быстрое создание package.json
- Установка нескольких пакетов одной командой
- Просмотр доступных скриптов
- Запуск локальных CLI через npm exec
- Проверка дерева зависимостей
- Поиск устаревших и дублирующихся пакетов
- Открытие документации и репозитория из терминала
- Итог
Быстрое создание package.json
Когда нужен новый проект, часто достаточно стартового package.json без диалога из десяти вопросов:
npm init -yЭта команда создает базовый файл сразу. Потом его можно точечно поправить через редактор или через npm pkg:
npm pkg set type=module
npm pkg set scripts.dev="vite"
npm pkg set scripts.build="vite build"Такой подход быстрее, чем отвечать на вопросы в интерактивном режиме, особенно когда ты все равно меняешь скрипты и метаданные вручную.
Установка нескольких пакетов одной командой
Если пакетный набор понятен заранее, устанавливай его одной командой:
npm install react react-dom
npm install -D typescript vite eslintЭто быстрее и лучше отражает намерение: видно, какие зависимости идут вместе. Единственное правило простое: не копируй длинные команды вслепую. Если сомневаешься в названии пакета, сначала проверь его отдельно.
Просмотр доступных скриптов
Чтобы увидеть все скрипты проекта, не обязательно открывать package.json:
npm runКоманда выводит список доступных scripts и помогает быстро вспомнить, как именно в проекте называются build, test, lint, dev и остальные команды.
Это особенно полезно в чужих репозиториях, где набор скриптов отличается от твоих привычек.
Запуск локальных CLI через npm exec
Если пакет установлен локально, не нужно помнить путь до бинаря в node_modules/.bin. Для этого есть npm exec:
npm exec eslint . --ext .js,.ts,.tsx
npm exec tsc -- --noEmitКоманда запускает локальный бинарь в контексте проекта. Старое сокращение npx все еще используется, но npm exec точнее описывает, что происходит.
Это удобно по двум причинам:
- не нужно устанавливать инструменты глобально;
- проект запускается с той версией CLI, которая зафиксирована у него в зависимостях.
Проверка дерева зависимостей
Когда нужно быстро понять, что реально установлено в проекте, используй npm ls:
npm ls --depth=0Так ты увидишь только верхний уровень зависимостей, без огромного дерева вложенных пакетов.
Для глобально установленных пакетов работает тот же прием:
npm ls -g --depth=0Это полезно, когда нужно найти старый глобальный CLI, который неожиданно влияет на окружение.
Поиск устаревших и дублирующихся пакетов
Чтобы понять, какие зависимости отстали, запускай:
npm outdatedКоманда показывает три значения:
current- что установлено сейчас;wanted- последняя версия, подходящая под текущий диапазон вpackage.json;latest- вообще самая свежая версия в реестре.
Если нужно обновить зависимости в рамках текущих версионных ограничений:
npm updateЕсли есть подозрение на лишние дубли в дереве зависимостей, можно запустить:
npm dedupenpm dedupe не делает проект “магически быстрее”, но помогает упростить дерево зависимостей там, где это возможно без изменения semver-ограничений.
Открытие документации и репозитория из терминала
Когда нужно быстро перейти к пакету, npm умеет открывать его страницы напрямую:
npm docs react
npm repo react
npm home reactЧто делает каждая команда:
npm docsоткрывает документацию пакета;npm repoоткрывает репозиторий;npm homeоткрывает домашнюю страницу из метаданных пакета.
Это банально, но экономит переключения между терминалом, поиском и вкладками браузера.
Итог
Полезность npm обычно не в одной “секретной” команде, а в том, что он закрывает много рутинных задач без дополнительных инструментов. Чем реже ты вручную лезешь в node_modules, ищешь бинарь или открываешь документацию через поисковик, тем спокойнее ежедневный workflow.
Если брать минимальный набор на каждый день, я бы оставил npm run, npm exec, npm outdated и npm docs. Этого уже достаточно, чтобы терминал вокруг проекта стал заметно удобнее.