«ng» не является внутренней или внешней командой: причины и решение

Ошибка «"ng" не является внутренней или внешней командой, исполняемой программой или пакетным файлом» появляется в командной строке Windows тогда, когда система не находит исполняемый файл Angular CLI ни в текущей папке, ни в каталогах, перечисленных в переменной окружения PATH. Чаще всего это означает, что Angular CLI просто не установлен глобально, либо установлен, но путь к нему не прописан в окружении.

Проблема не связана с самим проектом: она возникает до того, как Angular начинает работать. Соответственно, переустановка зависимостей проекта через npm install или правка файлов конфигурации здесь не поможет — необходимо разобраться с установкой Node.js, npm и системными путями. Ниже разберём диагностику и все рабочие способы устранения ошибки.

Почему Windows не находит команду ng

Когда вы вводите команду в терминале, Windows ищет одноимённый исполняемый файл в текущей директории, а затем последовательно просматривает все пути из переменной PATH. Если файл ng.cmd нигде не обнаружен, система выдаёт именно это сообщение об ошибке.

Возможные причины можно сгруппировать так:

  • 🔧 Angular CLI не установлен глобально через npm — самая частая причина;
  • 📦 Node.js не установлен вовсе, поэтому нет и npm, и инструментов экосистемы;
  • 🛤️ Папка с глобальными пакетами npm не добавлена в PATH или путь указан неверно;
  • 🔄 Терминал был открыт до установки и не видит обновлённое окружение;
  • 👤 Пакет установлен под другим пользователем или в нестандартный каталог.

Каждая из этих ситуаций проверяется отдельно, и начинать стоит с самой простой диагностики.

Шаг 1. Проверьте наличие Node.js и npm

Angular CLI распространяется как пакет npm, поэтому без установленного Node.js команда ng работать не будет в принципе. Откройте новое окно командной строки или PowerShell и выполните две проверки:

node -v

npm -v

Если обе команды возвращают номера версий — платформа установлена, и можно переходить к следующему шагу. Если же по node выводится та же ошибка «не является внутренней или внешней командой», значит, Node.js отсутствует или его путь не прописан в окружении.

Вам нужно скачать установщик Node.js с официального сайта проекта и установить его с параметрами по умолчанию — инсталлятор сам добавляет нужные пути в PATH. После установки обязательно закройте и заново откройте терминал: уже запущенные окна командной строки не подхватывают изменения переменных окружения.

Шаг 2. Установите Angular CLI глобально

Если Node.js и npm работают, но ng по-прежнему не находится, наиболее вероятная причина — CLI попросту не установлен. Установка выполняется одной командой:

npm install -g @angular/cli

Флаг -g означает глобальную установку: именно она делает команду ng доступной из любой папки, а не только внутри конкретного проекта. Дождитесь завершения установки и проверьте результат:

ng version

Если в ответ выводится информация о версии Angular CLI — проблема решена. Если ошибка осталась, переходите к проверке путей.

☑️ Базовая проверка перед настройкой PATH

Выполнено: 0 / 5

Шаг 3. Проверьте и настройте переменную PATH

Глобальные пакеты npm размещаются в специальной папке, и именно она должна присутствовать в PATH. Узнать текущий путь к глобальным пакетам можно командой:

npm config get prefix

Обычно под Windows это каталог вида C:\Users\ИмяПользователя\AppData\Roaming\npm. Проверьте, есть ли там файлы ng и ng.cmd. Если файлы на месте, а команда не работает — путь к этой папке отсутствует в переменной окружения.

Чтобы добавить путь вручную, откройте Система → Дополнительные параметры системы → Переменные среды, найдите переменную Path в разделе пользовательских переменных и добавьте туда путь, полученный из npm config get prefix. После сохранения закройте все окна терминалов и откройте новое.

⚠️ Внимание: редактируйте переменные среды аккуратно. Не удаляйте существующие записи в Path — это может нарушить работу других программ. Добавляйте новый путь отдельной строкой.
📊 На каком шаге решилась ваша проблема с командой ng?
Установка Node.js
Глобальная установка Angular CLI
Настройка PATH
Проблема ещё не решена

Ошибка в PowerShell: политика выполнения скриптов

Отдельный случай — когда в классической командной строке ng работает, а в PowerShell появляется сообщение о запрете выполнения скриптов. Это уже другая ошибка, связанная с политикой выполнения ExecutionPolicy, которая по умолчанию может блокировать запуск сценариев, включая ng.ps1.

Проверить текущую политику можно командой Get-ExecutionPolicy. Если она установлена в Restricted, для текущего пользователя её можно смягчить:

Set-ExecutionPolicy -Scope CurrentUser RemoteSigned

Режим RemoteSigned разрешает локальные скрипты и требует цифровой подписи только для загруженных из сети. Это общепринятая настройка для машины разработчика, однако на корпоративных компьютерах политика может управляться администратором — в таком случае изменение может быть заблокировано.

⚠️ Внимание: не устанавливайте политику Unrestricted ради одного инструмента — это снижает защиту системы от вредоносных скриптов. Достаточно режима RemoteSigned.

Альтернативы и частные сценарии

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

npx @angular/cli new my-app

Также учитывайте несколько неочевидных ситуаций. Во-первых, если Node.js установлен через менеджер версий вроде nvm-windows, глобальные пакеты привязаны к конкретной версии Node — после переключения версии Angular CLI придётся установить заново. Во-вторых, встроенный терминал редактора (например, VS Code) мог быть запущен до установки CLI — перезапустите сам редактор.

Как проверить, где Windows ищет команду

Выполните в командной строке: where ng. Если команда найдена, будет показан полный путь к исполняемому файлу. Если выводится сообщение, что файлы не найдены, — значит, путь к папке с ng отсутствует в PATH или пакет не установлен.

Сравнение типичных ситуаций и действий сведено в таблицу:

СимптомВероятная причинаДействие
node -v тоже не работаетNode.js не установленУстановить Node.js с официального сайта
npm работает, ng — нетCLI не установлен глобальноnpm install -g @angular/cli
CLI установлен, ошибка осталасьПапка npm не в PATHДобавить путь из npm config get prefix
Ошибка только в PowerShellПолитика выполнения скриптовSet-ExecutionPolicy RemoteSigned
Работало, сломалось после смены версии Nodenvm: пакеты привязаны к версииПереустановить CLI под активной версией

Часто задаваемые вопросы

Нужно ли устанавливать Angular CLI заново для каждого проекта?

Нет. Глобальная установка с флагом -g делается один раз на систему. Внутри проектов локальная версия CLI подтягивается автоматически через зависимости, а глобальная команда ng используется для создания и обслуживания проектов.

Почему после установки ошибка осталась в уже открытом терминале?

Командная строка считывает переменные окружения только при запуске. Закройте окно терминала и откройте новое — тогда обновлённый PATH будет учтён. Это же касается встроенных терминалов редакторов кода.

Можно ли работать без глобальной установки Angular CLI?

Да. Используйте npx @angular/cli <команда> — пакет будет выполняться без установки в систему. Это удобно для разовых задач или на машинах, где нет прав на глобальную установку.

Где находится папка глобальных пакетов npm в Windows?

Точный путь зависит от конфигурации, его покажет команда npm config get prefix. Типичное расположение — подкаталог npm внутри AppData\Roaming вашего профиля пользователя.

Что делать, если ничего из перечисленного не помогло?

Проверьте вывод where ng и npm config get prefix, убедитесь, что файлы ng.cmd физически существуют в указанной папке, и что именно этот путь присутствует в пользовательской переменной Path. Если Node.js устанавливался через менеджер версий, проверьте, какая версия активна в данный момент.