Ошибка «"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
Шаг 3. Проверьте и настройте переменную PATH
Глобальные пакеты npm размещаются в специальной папке, и именно она должна присутствовать в PATH. Узнать текущий путь к глобальным пакетам можно командой:
npm config get prefix
Обычно под Windows это каталог вида C:\Users\ИмяПользователя\AppData\Roaming\npm. Проверьте, есть ли там файлы ng и ng.cmd. Если файлы на месте, а команда не работает — путь к этой папке отсутствует в переменной окружения.
Чтобы добавить путь вручную, откройте Система → Дополнительные параметры системы → Переменные среды, найдите переменную Path в разделе пользовательских переменных и добавьте туда путь, полученный из npm config get prefix. После сохранения закройте все окна терминалов и откройте новое.
⚠️ Внимание: редактируйте переменные среды аккуратно. Не удаляйте существующие записи в 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 |
| Работало, сломалось после смены версии Node | nvm: пакеты привязаны к версии | Переустановить 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 устанавливался через менеджер версий, проверьте, какая версия активна в данный момент.