Ошибка: EBUSY: ресурс занят или заблокирован, rmdir

#node.js #angular5

#node.js #angular5

Вопрос:

Ошибка возникает после следующих шагов в Windows:

  1. Откройте один терминал: npm run start:dev
  2. Откройте другой терминал: ng build --watch

Однако это работает на Mac с помощью вышеуказанных команд. Частью конфигурации package.json являются:

 "scripts": {
"ng": "ng",
"start:dev:prod": "ng build --prod amp;amp; cd dist/ amp;amp; node static/server.js",
"start": "node static/server.js",
"build:prod": "ng build --prod",
"test": "ng test --code-coverage",
"lint": "ng lint",
"e2e": "ng e2e",
"start:dev": "npm run build amp; cd dist/ amp; SET APP_ENV=dev amp; node static/server.js",
"build": "ng build"
},
  

Журнал ошибок:

 Error: EBUSY: resource busy or locked, rmdir 'C:AngularProjectdist'
Error: EBUSY: resource busy or locked, rmdir 'C:Spring-Intern-Projectswdpr-accounting-reference-clientdist'
at Object.rmdirSync (fs.js:701:3)
  

Комментарии:

1. Самое простое, что вы можете попробовать, это закрыть все ваши терминалы, чтобы избавиться от блокировщика, и повторить попытку.

2. Да. Остановил AVG, и теперь он работает нормально.

3. Поскольку я подключаюсь к каталогу, в котором я запускаю команду, каталог всегда будет занят. Я не могу запустить команду без открытой командной строки.

4. Моими проблемами также было мое антивирусное программное обеспечение, как только я его отключил, моя установка прошла нормально. Очевидно, снова включил его обратно!

Ответ №1:

Если все вышеперечисленные решения не сработали, И вы используете ПК с Windows, как в моем случае, проще всего сделать это:

  1. Нажмите клавишу Windows плюс R на клавиатуре, чтобы открыть окно команды выполнить и введите это

    resmon.exe

  2. нажмите OK, чтобы открыть монитор ресурсов

  3. На мониторе перейдите на вкладку CPU

  4. В разделе «Связанные дескрипторы» в окне поиска скопируйте путь к соответствующему файлу или папке и вставьте его туда

  5. Нажмите на значок поиска

  6. Вы должны быть в состоянии видеть все программы, использующие файл или папку

  7. щелкните правой кнопкой мыши каждый и завершите процесс

введите описание изображения здесь

Теперь продолжайте то, что вы пытались сделать с файлом или папкой. В моем случае у меня возникли проблемы с использованием react-create-app через npm. Дополнительная информация здесь #117908

Я просто надеюсь, что это кому-то поможет.

Комментарии:

1. моей проблемой было несколько заблокированных папок кэша. Я использовал ваш метод, чтобы остановить процесс git, блокирующий их, и удалил папки. Мне пришлось подождать несколько секунд, когда консоль выглядела так, будто она застряла, пока через некоторое время она просто не возобновила процесс установки npm самостоятельно.

2. @OmerLeshem Я рад, что это помогает. Похоже, проблемы больше связаны с Windows. Я не сталкивался с этим в Mac OS.

Ответ №2:

Эта проблема связана с кешированием, запустите приведенную ниже команду в терминале

 npm cache verify
  

Комментарии:

1. Для пользователей yarn вы можете сделать yarn cache clean

Ответ №3:

Для пользователей VSCode:

Проверьте, открыт ли каталог / папка, которые вы пытаетесь удалить, в терминалах.Может быть несколько экземпляров терминала, поэтому проверьте, есть ли у вас какие-либо.

Изменение каталога, открытого в терминале, или уничтожение этого экземпляра терминала решит проблему.

Если ни одно из этих действий не работает, закройте vscode и повторите попытку. Спасибо @Vugar Abdullayev

Комментарии:

1. также может быть полезно закрыть визуальный код, потому что иногда терминала недостаточно.

2. @VugarAbdullayev Да, это правильно. Спасибо, что указали 👍🏽

Ответ №4:

Основная причина, по которой вы видите эту ошибку, связана с тем, что программа по какой-либо причине заблокировала папку. Тестирование команды при закрытии программ по очереди может помочь решить проблему и сообщить вам, какая программа является виновником.

Одна из проблем, с которой сталкивались пользователи, была связана с защитой от вредоносных программ в Windows. Вы можете прочитать эту тему здесь:

https://github.com/npm/npm/issues/13461

На случай, если ссылка перестанет работать, вот комментарий, за который проголосовали больше всего:

В 64-разрядной ОС Windows 10 я решил эту проблему, удалив антивирусное программное обеспечение.

Другой способ, которым вы можете вызвать эту ошибку, — это если вы запускаете npm run [command] while cd’d в каталог, который его изменяет. Это случилось со мной, когда я закрыл все программы, и это не сработало, но понял, что я был внутри dist папки, которую нужно было удалить и перестроить. Это вызвало Error: EBUSY: resource busy or locked, rmdir ошибку в PowerShell и может воспроизводиться каждый раз.

Комментарии:

1. Я решил свою проблему, изменив каталог на что-то другое, отличное от папки, которую я пытался удалить.

Ответ №5:

Это произошло из-за перезаписи некоторого npm, поэтому он заблокировал ваш исходный код

решения (то, что я сделал для очистки кэша npm, также не работает, затем я удалил пакет — блокировка начала работать)

  1. просто удалите блокировку пакета

  2. очистить кэш.

    npm cache clean

    также очистите кэш (необязательно)

  3. npm install --cache

Ответ №6:

У меня была такая же проблема, и я нашел причину — проект находится внутри папки dropbox, которая синхронизирует и блокирует папку node_modules. Я закрыл dropbox, и это сработало.

Комментарии:

1. Вы буквально только что спасли мой монитор от заклинивания клавиатуры. Не знаю, как вас отблагодарить!

2. У меня только что была такая же проблема с использованием zx, помощника на основе узлов для написания скриптов bash — простым решением было прекратить синхронизацию этой папки

Ответ №7:

Я смог решить проблему с уничтожением процессов npm и Java. У меня возникла проблема с запуском моего Android-устройства под управлением Cordova, поэтому отключение процессов npm и java помогло мне решить проблему.

Ответ №8:

Вы можете удалить следующую папку, а затем повторить попытку. У меня сработало.

 C:Users{username}AppDataLocalTempnpm-xxxxxxxxxx
  

Ответ №9:

Перезапуск системы устранил проблему для меня.

Ответ №10:

Иногда (в другом случае) это просто проблема с сетью, что я делаю, просто используя VPN, и его работу.

Ответ №11:

В моем случае android Studio и VSCode были открыты. Помогло закрытие Android Studio.

Ответ №12:

Это также происходит со мной, когда я хочу удалить свой файл data.db при запуске и воспроизведении простого приложения на Python, которое я создал (app.py ) чтобы проверить соединение с моей базой данных sqlite3. Когда я хочу удалить файл .db, мой app.py все еще выполняется в терминале, и появляется ошибка.

Итак, что я делаю, я отключаю / останавливаю терминал, который запускает app.py . После остановки запущенного терминала я могу успешно удалить файл .db.

* Это на ПК с Windows.

Ответ №13:

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

Ответ №14:

Я пытался удалить модули узла и переустановить их, но это не сработало. Проблема в моем случае была из-за неправильно импортированной зависимости с помощью VSCode, я исправил проблему, удалив последний импорт, который я добавил в свой код.

Ответ №15:

Используя Jest и после обновления до Angular 13 , я начал получать это сообщение об ошибке.

Я узнал, что это было из-за неудачных модульных тестов, которые все еще использовали (неправильно) синтаксис Jasmine. Например:

 spyOn() // instead of jest.spyOn()
expect().and.returnValue(X) // instead of expect().mockReturnValue(X)
  

Как только я обновил свой синтаксис, чтобы он был «чистой шуткой» вместо смесей Jasmine / Jest, эти ошибки были устранены, и ошибка EBUSY больше не выдавалась.

Ответ №16:

Просто закройте терминал и откройте его снова

Комментарии:

1. Эй, похоже, это неправильный ответ, пожалуйста, будьте более конкретны для ответа, спасибо.

2. Часто ресурс заблокирован только в пределах терминала. Когда вы открываете новый, вы снова начинаете с настроек по умолчанию. Вот как это может решить такого рода проблемы, но не всегда.

Ответ №17:

Обычно это происходит, когда папка открыта в терминале, после остановки терминала я смог удалить папку.

Ответ №18:

Я решил свою проблему, предоставив доступ к соответствующей заблокированной папке.

Комментарии:

1. Что такое «проникновения»?

Ответ №19:

содержимое папки node_modules может создавать поврежденные сектора на дисках, использование программного обеспечения для дефрагментации и оптимизации для этих дисков может уменьшить подобные проблемы.