Ошибка "nodemon" не является внутренней или внешней командой, исполняемой программой или пакетным файлом возникает в командной строке Windows, когда система не находит исполняемый файл nodemon ни в текущей папке, ни в каталогах, перечисленных в переменной окружения PATH. Чаще всего причина одна из трёх: пакет не установлен вообще, установлен локально в проект, а не глобально, либо путь к глобальным пакетам npm не добавлен в PATH.
Хорошая новость в том, что это не сбой Node.js и не повреждение системы — проблема решается за несколько минут. Ниже разберём, как проверить установку, правильно поставить nodemon и что делать, если ошибка сохраняется даже после установки.
Почему Windows не находит команду nodemon
Командная строка ищет вводимую команду в строго определённых местах: сначала в текущей директории, затем во всех папках из переменной PATH. Если исполняемого файла nodemon.cmd нет ни в одном из этих мест, Windows выдаёт именно ту ошибку, с которой вы столкнулись.
Типичные причины выглядят так:
- 📦 nodemon не установлен — пакет никогда не ставился на этот компьютер;
- 📁 локальная установка — пакет установлен через
npm install nodemonбез флага-gи доступен только внутри конкретного проекта; - 🛠️ отсутствует путь в PATH — папка глобальных пакетов npm не прописана в переменной окружения;
- 🔄 устаревший сеанс терминала — командная строка была открыта до установки и не видит обновлённый PATH.
⚠️ Внимание: если вы устанавливали nodemon локально в проект, команда nodemon app.js из корня диска или другой папки работать не будет — это нормальное поведение npm, а не поломка.
Шаг 1. Проверьте, установлен ли Node.js и npm
Прежде чем чинить nodemon, убедитесь, что на компьютере вообще установлен Node.js — без него пакетный менеджер npm отсутствует, и ставить nodemon будет нечем. Откройте командную строку (Win + R → cmd) и выполните две команды:
node -v
npm -v
Если обе команды выводят номера версий — платформа на месте, переходите к следующему шагу. Если вместо версии вы видите ту же ошибку «не является внутренней или внешней командой», сначала установите Node.js с официального сайта nodejs.org, а затем перезапустите терминал.
Шаг 2. Установите nodemon глобально
Самый надёжный способ сделать команду доступной из любой папки — глобальная установка. Выполните в командной строке:
npm install -g nodemon
Флаг -g помещает пакет в глобальный каталог npm, а ссылку на исполняемый файл — в папку, которая обычно уже включена в PATH. После завершения установки обязательно закройте и заново откройте командную строку — текущий сеанс не подхватывает изменения окружения на лету.
☑️ Проверка после установки nodemon
Проверить результат можно командой nodemon --version. Если вместо версии снова появляется ошибка — проблема в переменной PATH, и её нужно настраивать вручную.
Шаг 3. Настройте переменную PATH вручную
Иногда установщик Node.js не добавляет папку глобальных пакетов в PATH, и система просто не знает, где искать nodemon.cmd. Сначала узнайте, куда npm ставит глобальные пакеты:
npm config get prefix
По умолчанию на Windows это обычно путь вида C:\Users\ИмяПользователя\AppData\Roaming\npm. Этот каталог и нужно добавить в переменную окружения:
- ⚙️ откройте Параметры системы → «О системе» → «Дополнительные параметры системы»;
- 🔧 нажмите кнопку «Переменные среды»;
- ✏️ в списке пользовательских переменных найдите
Pathи нажмите «Изменить»; - ➕ добавьте новую строку с путём из
npm config get prefixи сохраните изменения.
⚠️ Внимание: после редактирования PATH перезапустите не только командную строку, но и редактор кода (например, VS Code) — запущенные программы не перечитывают переменные окружения автоматически.
Шаг 4. Альтернатива: запуск через npx и локальная установка
Глобальная установка — не единственный вариант. Многие разработчики предпочитают держать nodemon в зависимостях конкретного проекта, чтобы версия инструмента была зафиксирована в package.json. В этом случае установка выглядит так:
npm install --save-dev nodemon
Запускать локально установленный пакет напрямую командой nodemon из терминала нельзя — используйте npx nodemon app.js или добавьте скрипт в package.json:
"scripts": {
"dev": "nodemon app.js"
}
После этого проект запускается командой npm run dev, и никакие глобальные пути не нужны. Такой подход особенно удобен в командной разработке: каждый участник получает одинаковую версию nodemon автоматически при npm install.
Особенности запуска в PowerShell и VS Code
В PowerShell может возникнуть дополнительное препятствие — политика выполнения скриптов. Если вместо привычной ошибки вы видите сообщение о запрете выполнения сценариев, это уже другая проблема: PowerShell блокирует запуск nodemon.ps1. Решается она изменением политики выполнения для текущего пользователя командой Set-ExecutionPolicy RemoteSigned -Scope CurrentUser либо использованием обычной командной строки cmd.
Во встроенном терминале VS Code ошибка часто появляется из-за того, что редактор был запущен до установки nodemon или до изменения PATH. Полностью закройте VS Code (не только окно, но и процесс) и откройте заново — терминал подхватит актуальные переменные окружения.
Сравнение способов установки nodemon
| Способ | Команда | Доступность | Когда использовать |
|---|---|---|---|
| Глобальная установка | npm i -g nodemon | Из любой папки | Личные проекты, обучение |
| Локальная (dev) | npm i --save-dev nodemon | Только в проекте | Командная разработка |
| Запуск через npx | npx nodemon app.js | Где установлен пакет | Быстрый разовый запуск |
| Скрипт в package.json | npm run dev | В проекте | Стандартный рабочий процесс |
Что делать, если ничего не помогло
Переустановите Node.js с официального сайта, выбрав в установщике опцию добавления в PATH. Затем перезагрузите компьютер, установите nodemon глобально заново и проверьте команду nodemon --version в новом окне командной строки. Также убедитесь, что антивирус не заблокировал файлы в папке глобальных пакетов npm.
Частые вопросы (FAQ)
Почему nodemon работает в одном проекте, а в другом — нет?
Скорее всего, пакет установлен локально только в первом проекте. Локальные зависимости не видны за пределами своей папки — либо установите nodemon глобально с флагом -g, либо добавьте его в package.json каждого проекта.
Нужно ли перезагружать компьютер после установки nodemon?
Полная перезагрузка обычно не требуется. Достаточно закрыть и заново открыть командную строку, PowerShell и редактор кода. Перезагрузка помогает лишь в редких случаях, когда изменения PATH не применяются.
Чем npx отличается от npm?
npm — пакетный менеджер, который устанавливает библиотеки, а npx — инструмент запуска: он находит исполняемый файл пакета (в том числе локально установленного) и выполняет его без необходимости прописывать путь вручную.
Ошибка появляется только в PowerShell, в cmd всё работает. Что делать?
Проверьте политику выполнения скриптов командой Get-ExecutionPolicy. Если стоит Restricted, разрешите локальные сценарии командой Set-ExecutionPolicy RemoteSigned -Scope CurrentUser и перезапустите PowerShell.
Можно ли использовать nodemon без установки Node.js?
Нет. Nodemon — это пакет экосистемы Node.js, и без установленной платформы и npm он не работает. Сначала установите Node.js с официального сайта, затем ставьте nodemon.