Перейти к основному содержимому

Справочник CLI экосистемы JavaScript

Разработчику

Консольные утилиты экосистемы JavaScript

В экосистеме JavaScript десятки CLI-утилит с похожими именами: npm install, pnpm i, vite dev, next build. Ниже — карта и шпаргалка: категории инструментов, типичные задачи и 10 команд на каждую утилиту, с которых обычно начинают работу.

Углублённо про npm — в npm — команды и lock-файлы. Запуск Node, отладка и Docker — в CLI Node.js.


Как устроена экосистема CLI

КатегорияПримерыТипичные задачи
Runtime и менеджеры пакетовnode, npm, npx, yarn, pnpm, bun, denoЗапуск JS, установка зависимостей, скрипты проекта
Компиляторы и сборщикиtsc, vite, webpack, turboTypeScript → JS, dev-сервер, production-сборка, монорепо
CLI фреймворковcreate-react-app, next, ng, vue, senchaСоздание проекта, генерация файлов, сборка приложения
Качество и тестыeslint, prettier, jestЛинтинг, форматирование, unit-тесты

Ниже — по 10 команд на утилиту. В реальном проекте часть вызовов идёт через npm run / pnpm run (скрипты из package.json); здесь показаны прямые вызовы бинарников.


Runtime и менеджеры пакетов

node — среда выполнения JavaScript

Запускает JS вне браузера: серверы, скрипты, CLI. Подробнее — Node.js — основы.

КомандаНазначение
node app.jsВыполнить файл
nodeИнтерактивный REPL
node -vВерсия runtime
node -e "console.log(2+2)"Выполнить строку кода
node --watch server.jsПерезапуск при изменении файла (Node 18.11+)
node --inspect app.jsОтладчик (Chrome DevTools / VS Code)
node --inspect-brk app.jsОтладка с паузой на первой строке
node --input-type=moduleЧитать stdin как ESM-модуль
node --max-old-space-size=4096 app.jsЛимит памяти кучи (МБ)
node --trace-warnings app.jsПоказать стек для предупреждений

npm — менеджер пакетов Node.js

Ставит зависимости, запускает скрипты, публикует пакеты. Разбор SemVer и lock-файлов — 265.md.

КомандаНазначение
npm init -yСоздать package.json с дефолтами
npm installУстановить зависимости из lock-файла
npm install expressДобавить пакет в dependencies
npm install -D vitestДобавить dev-зависимость
npm run devЗапустить скрипт "dev" из package.json
npm ciЧистая установка по lock (CI/CD)
npm outdatedПакеты с доступными обновлениями
npm updateОбновить зависимости в рамках SemVer
npm auditПроверка уязвимостей
npm publishОпубликовать пакет в npm Registry

npx — разовый запуск CLI из пакета

Не требует глобальной установки: скачивает пакет во временный кэш и запускает бинарник.

КомандаНазначение
npx cowsay "hi"Запустить пакет без npm install -g
npx create-vite@latestСоздать проект Vite (интерактивно)
npx tsc --initСгенерировать tsconfig.json
npx eslint .Прогнать ESLint из devDependencies
npx prettier --write .Отформатировать файлы
npx nodemon app.jsDev-перезапуск без глобального nodemon
npx --yes degit user/repoКлонировать шаблон без git history
npx --package=typescript tscЗапустить tsc из указанного пакета
npx npm@latest initВызвать другую версию npm
npx -c 'node -v && npm -v'Выполнить shell-команду в контексте npm

yarn — альтернативный менеджер пакетов

Быстрая установка, lock-файл yarn.lock. Классический Yarn (v1) и современный Berry (v2+) отличаются синтаксисом; ниже — распространённые команды Yarn Classic / совместимого режима.

КомандаНазначение
yarn init -yСоздать package.json
yarnУстановить зависимости
yarn add lodashДобавить dependency
yarn add -D eslintДобавить devDependency
yarn remove lodashУдалить пакет
yarn devЗапустить скрипт dev
yarn upgradeОбновить зависимости
yarn why reactПоказать, кто тянет пакет
yarn cache cleanОчистить кэш
yarn publishОпубликовать пакет

pnpm — экономичный менеджер пакетов

Хранит файлы пакетов в общем store и жёстко связывает их через симлинки — меньше дубликатов на диске.

КомандаНазначение
pnpm initСоздать package.json
pnpm installУстановить зависимости
pnpm add axiosДобавить dependency
pnpm add -D typescriptДобавить devDependency
pnpm remove axiosУдалить пакет
pnpm run buildЗапустить скрипт сборки
pnpm updateОбновить пакеты
pnpm why vueДерево зависимостей для пакета
pnpm store pruneУдалить неиспользуемое из store
pnpm publishПубликация в registry

bun — быстрый runtime и менеджер пакетов

Заменяет связку node + npm в части сценариев: установка, запуск, тесты, bundling.

КомандаНазначение
bun --versionВерсия Bun
bun initИнициализировать проект
bun installУстановить зависимости
bun add honoДобавить пакет
bun remove honoУдалить пакет
bun run index.tsВыполнить файл (TS без отдельной компиляции)
bun run devСкрипт из package.json
bun testЗапустить встроенный test runner
bun build ./src/index.ts --outdir distСобрать бандл
bunx create-viteАналог npx — разовый запуск пакета

deno — защищённый runtime для JS и TS

Модули по URL, встроенный форматтер и линтер, явные разрешения на файлы и сеть.

КомандаНазначение
deno --versionВерсия Deno
deno run app.tsЗапустить TypeScript-файл
deno run --allow-net server.tsРазрешить сетевые запросы
deno run --allow-read=. script.tsЧтение файлов в каталоге
deno eval "console.log(1)"Выполнить выражение
deno fmtОтформатировать код (встроенный Prettier-подобный)
deno lintВстроенный линтер
deno testЗапустить тесты
deno compile -o mycli app.tsСобрать standalone-бинарник
deno install -g -n serve https://deno.land/x/serve/mod.tsУстановить глобальную CLI-команду

Компиляторы и сборщики

tsc — компилятор TypeScript

Превращает .ts в .js, проверяет типы. Язык подробнее — раздел TypeScript.

КомандаНазначение
tsc --initСоздать tsconfig.json
tscСкомпилировать проект по tsconfig.json
tsc --watchПересборка при изменении файлов
tsc --noEmitТолько проверка типов, без вывода JS
tsc file.tsСкомпилировать один файл
tsc --outDir distПапка для скомпилированных файлов
tsc --project tsconfig.build.jsonАльтернативный конфиг
tsc --declarationГенерировать .d.ts
tsc --sourceMapSource maps для отладки
tsc --pretty falseКомпактный вывод ошибок (CI)

vite — dev-сервер и сборка фронтенда

Быстрый HMR, ESM из коробки, оптимизация production через Rollup.

КомандаНазначение
npm create vite@latestСоздать новый проект (через npm)
viteDev-сервер (по умолчанию порт 5173)
vite buildProduction-сборка в dist/
vite previewЛокальный просмотр production-сборки
vite --hostДоступ с других устройств в сети
vite --port 3000Указать порт
vite build --watchСборка при изменении файлов
vite --config vite.config.tsЯвный путь к конфигу
vite optimizeПредварительный бандл зависимостей
vite --debugПодробные логи (отладка конфига)

webpack — модульный сборщик

Гибкая конфигурация loaders и plugins; часто в legacy и enterprise-проектах.

КомандаНазначение
npx webpackСборка по webpack.config.js
npx webpack --mode developmentРежим разработки
npx webpack --mode productionМинификация и оптимизации
npx webpack --watchПересборка при изменениях
npx webpack --config webpack.dev.jsАльтернативный конфиг
npx webpack serveDev-сервер (webpack-dev-server)
npx webpack --env goal=localПередать переменные в конфиг
npx webpack --analyzeАнализ размера бандла (с плагином)
npx webpack --stats verboseПодробный отчёт сборки
npx webpack --progressПрогресс-бар в консоли

turbo — сборка в монорепозиториях (Turborepo)

Кэширует задачи между пакетами, параллелит build, test, lint в workspace.

КомандаНазначение
npx create-turbo@latestСоздать монорепо-шаблон
turbo run buildЗапустить build во всех пакетах
turbo run test --filter=webТолько пакет web
turbo run lintЛинтинг по графу зависимостей
turbo run devПараллельный dev (если настроен скрипт)
turbo run build --forceИгнорировать кэш
turbo run build --dry-runПоказать план без выполнения
turbo prune --scope=webВырезать подмножество для Docker
turbo loginВойти в Turborepo Remote Cache
turbo linkПривязать репозиторий к remote cache

CLI фреймворков и библиотек

create-react-app — шаблон React (устаревает)

Официальный scaffolding на Webpack; для новых проектов команда React рекомендует Vite + React или фреймворки вроде Next.js.

КомандаНазначение
npx create-react-app my-appСоздать проект
npx create-react-app my-app --template typescriptШаблон с TypeScript
npm startDev-сервер (внутри проекта)
npm run buildProduction-сборка
npm testТесты в watch-режиме
npm run eject«Выбросить» скрытый конфиг (необратимо)
npm run build && npx serve -s buildПроверить статику локально
CI=true npm testТесты один раз (для CI)
npm install react-router-domДобавить роутинг вручную
npm run build -- --statsСтатистика бандла (с настройкой)

next — CLI Next.js

SSR, маршруты, API Routes, App Router. Обзор — Next.js.

КомандаНазначение
npx create-next-app@latestСоздать проект
next devDev-сервер
next buildProduction-сборка
next startЗапуск после build
next lintESLint с конфигом Next
next infoВерсии окружения для issue
next dev --turboDev с Turbopack (если доступен)
next build --debugПодробный лог сборки
next telemetry disableОтключить телеметрию
next exportСтатический экспорт (legacy Pages; в App Router — output: 'export')

ng — Angular CLI

Генерация компонентов, сборка, тесты. Старт раздела — Angular.

КомандаНазначение
npm i -g @angular/cliУстановить CLI глобально
ng new my-appСоздать проект
ng serveDev-сервер
ng buildСборка
ng build --configuration productionProduction-оптимизации
ng generate component user-listСгенерировать компонент
ng generate service apiСгенерировать сервис
ng testUnit-тесты (Karma/Jasmine)
ng lintЛинтинг проекта
ng update @angular/coreОбновление версии Angular

vue — Vue CLI (классический scaffolding)

Для новых проектов часто используют npm create vue@latest (create-vue). Команда vue — из пакета @vue/cli.

КомандаНазначение
npm create vue@latestСовременный шаблон (Vite, без глобального CLI)
vue create my-appИнтерактивный проект (Vue CLI)
vue uiГрафический интерфейс управления проектом
vue serveDev-сервер
vue buildProduction-сборка
vue inspectПоказать итоговый webpack-конфиг
vue add routerПлагин Vue Router
vue add vuexПлагин Vuex (legacy state)
vue lintESLint для Vue SFC
vue upgradeОбновить зависимости CLI в проекте

sencha — Sencha Cmd (Ext JS)

Корпоративный фреймворк Ext JS. Раздел — Ext JS.

КомандаНазначение
sencha helpСправка по командам
sencha generate app MyApp ./myappСоздать приложение
sencha app buildСборка текущего приложения
sencha app build productionProduction-сборка
sencha app watchПересборка при изменениях
sencha generate model UserМодель данных
sencha generate view MainПредставление
sencha package buildСобрать локальный пакет
sencha repo syncСинхронизация локального репозитория пакетов
sencha diagДиагностика окружения

Качество кода и тестирование

eslint — статический анализ кода

Находит ошибки и несогласованный стиль до запуска приложения.

КомандаНазначение
npx eslint .Проверить все файлы в каталоге
npx eslint src/Только папка src
npx eslint --fix .Автоисправление где возможно
npx eslint -c eslint.config.js .Явный конфиг (flat config)
npx eslint --ext .ts,.tsx srcРасширения файлов
npx eslint --max-warnings 0 .Падать при любом warning (CI)
npx eslint --format json -o report.json .Отчёт в JSON
npx eslint --print-config file.jsПоказать итоговые правила для файла
npx eslint --initМастер настройки (legacy)
npx eslint --cache .Кэш для ускорения повторных прогонов

prettier — форматирование кода

Единый стиль отступов, кавычек и переносов строк.

КомандаНазначение
npx prettier --write .Отформатировать все поддерживаемые файлы
npx prettier --check .Только проверка (CI)
npx prettier --write src/Конкретная папка
npx prettier --write "src/**/*.{js,ts,tsx}"Glob-маска
npx prettier --config .prettierrc --write .Явный конфиг
npx prettier --no-config file.jsФорматировать без конфига проекта
npx prettier --tab-width 2 --write file.jsПереопределить опцию в CLI
npx prettier --debug-check file.jsПочему файл считается «не отформатированным»
npx prettier --list-different .Список файлов, требующих форматирования
npx prettier --ignore-unknown .Пропускать неизвестные расширения

jest — тестовый раннер

Unit- и интеграционные тесты, снапшоты, моки, покрытие.

КомандаНазначение
npx jestЗапустить все тесты
npx jest --watchРежим watch при разработке
npx jest auth.test.jsОдин файл
npx jest -t "creates user"Тесты по имени (it / test)
npx jest --coverageОтчёт покрытия
npx jest --ciРежим CI (без watch, один прогон)
npx jest --updateSnapshotОбновить снапшоты
npx jest --bailОстановиться на первой ошибке
npx jest --maxWorkers=2Ограничить параллелизм
npx jest --config jest.config.tsЯвный конфиг

Как выбрать утилиту под задачу

ЗадачаС чего начать
Первый Node-проектnode, npm init, npm install262
Быстрый фронт без настройки Webpacknpm create vite@latest
React с SSR и маршрутамиnpx create-next-app@latestnext dev
Enterprise SPA на TypeScriptng newAngular
Монорепо (несколько пакетов в одном repo)pnpm или yarn workspaces + turbo run build
Проверка перед коммитомeslint --fix + prettier --write + jest

Связанные материалы

Если нужно автоматизировать конкретный сценарий (CI, pre-commit, Docker), опишите стек проекта — под него обычно достаточно 2–3 команд из таблиц выше, обёрнутых в package.json scripts.