Справочник 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, turbo | TypeScript → 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.js | Dev-перезапуск без глобального 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 --sourceMap | Source maps для отладки |
tsc --pretty false | Компактный вывод ошибок (CI) |
vite — dev-сервер и сборка фронтенда
Быстрый HMR, ESM из коробки, оптимизация production через Rollup.
| Команда | Назначение |
|---|---|
npm create vite@latest | Создать новый проект (через npm) |
vite | Dev-сервер (по умолчанию порт 5173) |
vite build | Production-сборка в 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 serve | Dev-сервер (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 start | Dev-сервер (внутри проекта) |
npm run build | Production-сборка |
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 dev | Dev-сервер |
next build | Production-сборка |
next start | Запуск после build |
next lint | ESLint с конфигом Next |
next info | Версии окружения для issue |
next dev --turbo | Dev с 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 serve | Dev-сервер |
ng build | Сборка |
ng build --configuration production | Production-оптимизации |
ng generate component user-list | Сгенерировать компонент |
ng generate service api | Сгенерировать сервис |
ng test | Unit-тесты (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 serve | Dev-сервер |
vue build | Production-сборка |
vue inspect | Показать итоговый webpack-конфиг |
vue add router | Плагин Vue Router |
vue add vuex | Плагин Vuex (legacy state) |
vue lint | ESLint для 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 production | Production-сборка |
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 install → 262 |
| Быстрый фронт без настройки Webpack | npm create vite@latest |
| React с SSR и маршрутами | npx create-next-app@latest → next dev |
| Enterprise SPA на TypeScript | ng new → Angular |
| Монорепо (несколько пакетов в одном repo) | pnpm или yarn workspaces + turbo run build |
| Проверка перед коммитом | eslint --fix + prettier --write + jest |
Связанные материалы
- Установка и скрипты Node — npm, структура проекта.
- Production Node — CLI и деплой.
- Фреймворки — обзор frontend, Next.js.
Если нужно автоматизировать конкретный сценарий (CI, pre-commit, Docker), опишите стек проекта — под него обычно достаточно 2–3 команд из таблиц выше, обёрнутых в package.json scripts.