#Что означает ошибка
ENOTEMPTY
Ошибка при переименовании каталога в node_modules из-за занятых файлов. Закройте процессы, удалите node_modules и повторите.
#Причины и признаки
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Файлы заняты | Файлы в node_modules удерживает процесс. | Закройте сборщик и повторите установку. |
| Антивирус | Антивирус задерживает переименование файла. | Проверьте журнал защиты и статус сканирования. |
| Прерванная установка | Зависимости частично установлены. | После сохранения lock переустановите их штатным способом. |
| Облачная папка | Проект находится в синхронизируемой папке. | Используйте локальную копию проекта без параллельной синхронизации. |
#Пошаговое решение
- Определите путь, который нельзя переименоватьИз сообщения
ENOTEMPTY ... renameскопируйте исходный и целевой путь, обычно внутриnode_modules. Остановите npm-сборку клавишами Ctrl+C и сохраните список незакоммиченных изменений командойgit status. Не удаляйтеpackage-lock.json— он нужен для воспроизводимости. - Освободите занятый каталогЗакройте только те редакторы, серверы разработки и процессы Node, которые используют эту папку. Если проект находится в OneDrive/Dropbox и активно синхронизируется, попробуйте локальную несинхронизируемую копию проекта. На Windows при необходимости перезапустите Проводник, но не отключайте антивирус.
- Восстановите зависимости с проверенным lock-файломЕсли каталог
node_modulesповреждён и это ваш локальный проект, после сохранения данных можно переименовать именноnode_modules(не исходники) и запуститьnpm ciпри наличии согласованного lock-файла; иначе используйте установленный в проекте пакетный менеджер. При монорепозитории не затрагивайте зависимости других проектов. - Проверьте результатУбедитесь, что установка завершилась, затем запустите
npm testили документированную команду проверки. Если ошибка появляется снова в том же пути, проверьте права каталога и фоновые процессы; не используйтеrm -rfбез проверки текущей директории.
#Если проблема осталась
Если «npm ERR! ENOTEMPTY: directory not empty, rename» повторяется, сохраните время, состояние подключения и точный текст ошибки. Не меняйте сразу несколько настроек — иначе станет трудно понять, какое действие повлияло на результат.