Як видалити node_modules - Глибока вкладена папка в Windows


229

При спробі видалити каталог node_modules, створений npm install:

Ім'я (файли) вихідного файлу більше, ніж підтримується файловою системою. Спробуйте перейти до місця, яке має коротше ім'я шляху, або спробуйте перейменувати його на коротші імена, перш ніж спробувати цю операцію

Я також спробував shift+ deleteта все ще маю те саме питання.


try renaming to shorter name(s) before attempting this operation
СЛАкс

3
Дякуємо за вашу пропозицію, @ SLaks! Я мав би зазначити, що я теж намагався це зробити, але файлів і режимів багато і глибоких, у нього є такі речі, як C: \ Users \ my_user_name \ projs \ backend \ node_modules \ imagemin \ node_modules \ imagemin-optipng \ node_modules \ optipng-bin \ node_modules \ bin-wrapper \ node_modules \ bin-check \ node_modules \ Executable \ node_modules \ meow \ node_modules \ camelcase-keys \ node_modules \ ... і продовжується. Перейменовувати файли вручну недоцільно, і, сподіваюся, знайдуться простіші способи без написання програми
leoh

1
Веб-штурм може видалити всіх.
ozzimpact

Я скористався інструментом Fixer Long Path і успішно видалив цю папку ".meteor". ( long-path-fixer.en.softonic.com )
Vu Doan

RUN INSTALL, npm install rimraf -g, RUN DELETE, rimraf node_modules
Jinna Balu

Відповіді:


437

Оскільки це найкращий результат google, для мене це працювало:

Встановити RimRaf:

npm install rimraf -g

І в папці проекту видаліть папку node_modules за допомогою:

rimraf node_modules

Якщо ви хочете рекурсивно видалити:

rimraf .\**\node_modules

[ http://www.nikola-breznjak.com/blog/nodejs/how-to-delete-node_modules-folder-on-windows-machine/ ]


тут не працює: "Помилка: ENOTEMPTY, каталог не порожній". і надане посилання не працює!
олефранк

7
Я автор публікації в блозі. @olefrank: це має місце, коли ви намагаєтесь видалити всю папку (не лише node_modules), а також якщо папка відкрилася у вікні провідника. США, дякую за посилання на першоджерело.
Микола

2
Це не буде корисно, якщо у вас немає NodeJS або ви намагаєтесь видалити глобальні модулі NodeJS після його видалення (саме тому мені довелося використовувати роботокопію)
Zorgatone

1
Я додам тут свої 2 копійки, щоб бути трохи більш конкретним до питання. Ви можете видалити всі папки node_modules рекурсивно (за допомогою шаблону rimraf .\**\node_modules
глобусу

1
@ Комментарій @ Artif3x має бути позначений як найкращий підказки для відповідей! дякую за пораду за видалення рекурсивно :-)
Хуан

111

Я просто зробив це, використовуючи Winrar, це може здатися дивним рішенням, але працює дуже добре.

  • клацніть правою кнопкою миші на node_modulesпапці
  • виберіть Add to archive ...з меню.
  • Відкриється діалогове вікно Winrar
  • просто перевірте варіант delete files after archiving
  • Не забудьте видалити node_modules.rar після закінчення.


[ОНОВЛЕННЯ] Це також працює з 7Zip



7
вау це підлий! +1 Використовували роботокопію, очевидно, це було виправлено за допомогою нових npm чи чогось іншого.
erp

1
@ChrisS Як це працює з 7Zip? Особливо при використанні графічного інтерфейсу!
bennos

4
У 2016 році (і особливо в 2018 році) вам не довелося б бути таким розумним, щоб видалити купу файлів.
webelo

73

Зняти лише за допомогою команди DOS без будь-якої інсталяції:

Створіть порожню папку "тестування" на C або D диску та використовуйте наступну команду DOS

robocopy /MIR c:\test D:\UserData\FolderToDelete > NUL

Після виконання вищевказаної команди ваша папка буде порожньою, тепер її можна видалити.

Не хвилюйтеся, що ваша тестова папка завжди буде порожньою, тому ви можете її видалити в будь-який час.


12
найкраща відповідь, тому що вам нічого не потрібно встановлювати
luschn

1
Після спробу rimraf та додавання мережевої папки це найчистіше рішення, яке я знайшов. Дякуємо, що поділилися цим.
Данім

1
чудове рішення; легко.
bob.mazzo

2
Я тільки що зробив невелику addion: > NUL. Коли я щойно спробував це, він запускав прилад за консоль, і збирався зайняти 15 хвилин і більше. З перенаправленням на місці він закінчився приблизно в 2
Майк Карон

Смішно, що для видалення деяких файлів JS вам потрібна ще одна бібліотека JS.
linuxunil

30

Ви можете використовувати Git Bash для видалення папки:

приклад: c: \ users \ olefrank \ projects \ mynodeproject

rm -rf / c / користувачів / olefrank / проекти / mynodeproject


9
Це не спрацювало в Windows 7. Помилка каталогу не порожня
Мігель Стівенс

5
Вам також потрібно вказати прапор -d, який також буде видаляти каталоги.
Stuart.Sklinar

або -fR, щоб рекурсивно підніматися на вершину та також видаляти папку
Dan Kanze

@Karthiga -rf - це прапори / параметри / параметри, які повідомляють RM, як виконати операцію видалення. rговорить про повторне введення в будь-які підкаталоги та fкаже примусове видалення (не підказуйте). -rf- це унікс-конвенція для вказівки відразу декількох прапорів / опцій.
Тім Кокер

20

Я використовував GitBash для видалення де папки!

rm -r node_modules

Щоб видалити все, знадобилося деякий час, але працювали для мене!


Це працювало для мене. Раніше я використовував римраф. rimraf не працював, і я спробував це.
Saiyaff Farouk

Це має бути головним коментарем. Ні, не встановлюючи щось для того, щоб щось вилучити .. Або просто введітьRD node_modules
Девід Макнейл

15

Видаліть Deep Netsted Folder, як node_modules в Windows

  1. Варіант 1

    Видалити за допомогою rimrafпакету NPM

    • Відкрийте командний рядок та змініть свій каталог у папку, у якій node_modulesіснує папка.

    • Біжи

      rimraf node_modules

    • Відсутня помилка rimraf, а потім Встановити

      npm install rimraf -g

    • Коли установка завершиться, запустіть

      rimraf node_modules

  2. Варіант 2 :

    Detele, нічого не встановлюючи

    • Створіть папку з назвою testна будь-якому Диску

      robocopy /MIR c:\test D:\UserData\FolderToDelete > NUL

    • видаліть папку testі FolderToDeleteоскільки вони обоє порожні

Чому це проблема в Windows?

Однією з глибоко вкладених структур папок є node_modules, Windows не може видалити папку, оскільки її ім'я задовге . Щоб вирішити це, Просте рішення, встановіть модуль вузла RimRaf


Error: EPERM: operation not permitted
Травіс Хетер

1
Виправлено: мені довелося перезапустити комп’ютер. Щось використовувало node_modules, але це дало мені помилку дозволу.
Травіс Хетер

8

Спробуйте Visual Studio Code

Після спробу багатьох рішень я знаходжу це досить просто. просто відкрийте проект у візуальному коді та видаліть його. користувальницький інтерфейс може замерзнути на кілька секунд, але він обов'язково спрацює. Я перевіряю, використовуючи велику папку node_modules великого розміру з ним

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

Дякую


Дивно працює !! :) Я намагався видалити його навіть у безпечному режимі, навіть використовував, sudo suале нічого не допомагає. До речі, я працюю на OSX, що ніколи не траплялось зі мною, поки я не перейшов на Mojave.
forloop

6

Ви можете використовувати Git Bash для видалення папки:

приклад: c: \ users \ stu \ projects \ mynodeproject

rm / c / користувачів / stu / проекти / mynodeproject -rfd


5

У мене була подібна проблема, і RD не працювало з незрозумілих причин.

NPM може позбутися власного безладу, тому, якщо ви будете робити npm uninstall [module-name]для кожного каталогу в node_modules, ви позбудетесь від них.

(Я перегляну, як зробити це цикл пізніше для тих, хто має багато залежностей.)


5
  1. npm install -g remove-node-modules
  2. cd до root і remove-node-modules
  3. або remove-node-modules path/to/folder

Джерело:

https://github.com/j-quelly/node-cleanup


1
Будь ласка, не просто надайте лише відповідь на посилання. Принаймні додайте пояснення.
cfi

4

просто запустіть для Windows, я не тестував його для інших операційних систем

rm -r node_modules

насправді ви можете видалити будь-яку папку за допомогою цього.

як rm -r AnyFolderWhichIsNotDeletableFromShiftDeleteOrDelete.

просто відкрийте переміщення gitbash до кореня папки та запустіть цю команду

Сподіваюсь, це допоможе.

Спасибі, Аджай Котнала



2

Будь-який файловий менеджер дозволяє уникати таких проблем, наприклад Far Manager

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


2
Я ніколи не бачив, щоб хтось використовував цей своєрідний інтерфейс вже більше 10 років .. Я зробив свій день.
Рікі

2

Я просто роблю del node_modules всередині моєї папки проекту на PowerShell, вона запитає, чи ви хочете вилучити її та її дочірню папку, просто натисніть «Y», і це все


Простий. Дякую
estin sun

... \ node_modules має діти, а параметр Recurse не вказаний. Якщо ви продовжите, усі діти будуть видалені з предметом. Ви впевнені, що хочете продовжити? [Y] Так [A] Так для всіх [N] Ні [L] Ні для всіх [S] Призупинити [?] Довідка (за замовчуванням "Y"): Y rd: Каталог C: \ ... \ node_modules \ ngx -color-picker \ dist неможливо видалити, оскільки він не порожній. rd node_modules -recurse
AUSTX_RJL

1
rd node_modules -recurse
AUSTX_RJL

@AUSTX_RJL rd також працює, але у мене ніколи не було проблем з del node_modules .. провідним, але tnx будь-яким способом для іншого способу видалення в PS
Roy.B

2

Спробував усе, але не вийшло. Всі перераховані вище методи нічого не зробили. Нарешті мені вдалося видалити через VSCode.

  1. Просто відкрийте свою кореневу папку за допомогою VSCode.
  2. Виберіть node_modulesпапку та видаліть.
  3. Прибуток. ( few millisecondsВидалення знадобиться .)

VSCode-delete.png


2

Я зробив пункт контексту Windows для швидкого видалення node_modules або інших папок. Я використовую його, коли Windows не видаляє папку через деякі недійсні символи в шляху до каталогу.

ЯК ВСТАНОВИТИ?

  1. Встановити rimraf =>npm install rimraf -g

  2. Створіть новий файл з назвою delete.bat, встановіть вміст як нижче та скопіюйте йогоc:\windows\system32\

    delete.bat:

 @ECHO OFF
 ECHO.
 ECHO %CD% 
 ECHO.
 ECHO Are you sure to delete the folder with Rimraf?
 PAUSE
 SET FOLDER=%CD%
 CD /

 rimraf "%FOLDER%"

 rem DEL /F/Q/S "%FOLDER%" > NUL
 rem RMDIR /Q/S "%FOLDER%"

 EXIT
  1. Запустіть файл для швидкого видалення.reg для імпорту в реєстр.

    Готово!

кінцевий результат


1

Одне рішення, яке я використовую:

(Я вважаю за краще уникати встановлення нового розширення (rimraf) під час роботи з середовищами CI.)

  1. A) Перейменуйте пакети.json на щось інше. B) Особливо на CI - після установки npm я зазвичай видаляю файл замість того, щоб перейменовувати його, але якщо вам це потрібно, вам цього не потрібно робити. Це ваш вибір.
  2. запустити npm init- це створить порожній packages.jsonфайл (відсутність залежностей)
  3. запустити npm prune- це буде відповідати node_modules з розділом залежності packages.json- який тепер порожній у результаті кроку №2.
  4. Якщо ви вибрали №1. крок, видаліть новостворене packages.jsonі перейменуйте оригінал packages.jsonна його початкове ім'я.

1

Це занадто просто.

Просто видаліть усі папки всередині node_modules, а потім видаліть фактичну папку node_module.

Це працює для мене. Найкраща удача ....


Чесно кажучи, це швидший шлях, але потрібно багато терпіння. Ще краще, якщо ви видалите кілька папок одночасно.
Сантош

1

У Windows мій шлях до рішення використовує rmdirкоманду :

rd /S .\node_modules\

Якщо це не вдається вперше - спробуйте ще один раз. Також перевірте, чи у вас зараз запущені сценарії, що використовують модулі ( npm run serveабо подібні).


0

З цього вигляду цієї статті MSDN виглядає так, що тепер ви можете обійти обмеження MAX_PATH в Windows 10 v1607 (AKA "ювілейне оновлення"), змінивши значення в реєстрі - або за допомогою групової політики


0

Просто використовуйте паттерн ..

Запустіть powershell та CD у батьківську папку, а потім:

rm [yourfolder]

а саме:

rm node_modules

0

Я в Windows 10, і я не міг видалити папки з повідомленням "каталог не порожній". Ні rimraf, ні rm -rf не працювали.

Копіювання порожнього текстового файлу у кожну папку зробило трюк - я зміг видалити повну папку node_modules.


0

Іноді, навіть якщо ви встановлюєте rimrafглобально, ви можете мати локальну rimrafзалежність (зазвичай у SASS). У цьому випадку я запускаю наступні команди:

Виконайте перші 2 кроки, як це рекомендовано, якщо у вас є проблеми або помилки, спробуйте

npm uninstall rimraf & rimraf node_modules

це видалить локальне rimrafта використовуватиме глобальне


0

Не зовсім пов’язано, але оскільки це перший пост, який я знайшов у пошуку подібного рішення, я думаю, що варто опублікувати тут.

Я зіткнувся з проблемами дозволу в Windows 10, намагаючись видалити свою папку node_modules після невдалої спроби встановлення electron-redux. Здається, що електрон-редукс додав @types до моїх модулів node_, які мали неправильні дозволи.

rimraf не працював, оскільки він все ще стикався з питаннями дозволів.

Я в кінцевому підсумку перейменував node_modules, тоді просте видалення спрацювало.


0

Гаразд, моя проблема полягала в тому, що у мене була папка .bin всередині node_modules, і я не зміг її видалити, я спробував усі вищеперелічені рішення для того ж самого, але нічого не працювало.

Помилка, яка повторювалася, була "у вас немає дозволу на видалення папки або її використовувала якась інша програма".

Рішення, що я знайшов "У мене на ПК встановлений антивірус, який несвідомо використовував файли з папки node_modules".

Я видалив антивірус або ви можете змінити налаштування дозволу з параметра налаштування антивірусу (залежить від того, який у вас антивірус). Тепер я можу видалити папку node_modules.


0

Що для мене працювало:

  1. закрив консоль диспетчера вузлів
  2. закрив середовище розробників Atom (код візуальної студії).
  3. потім видаліть node_modules

    npm install rimraf -g 
    rimraf node_modules

0

Спосіб PowerShell:

PS > rm -r -force node_modules

# The same, but without using aliases
PS > Remove-Item -Recurse -Force node_modules

І якщо ви хочете видалити всі node_modulesв підкаталогах:

Примітка Потенційно небезпечна, оскільки вона видаляє рекурсивно, будьте впевнені в тому, що ви робите тут

PS > dir -Path . -Filter node_modules -recurse | foreach {echo $_.fullname; rm -r -Force $_.fullname}

0

Ви можете використовувати інший пакет npm спеціально для цієї мети. Встановивши його локально у папці за допомогою

npm i rm-node-modules-recur

Якщо ви хочете, ви також можете встановити його глобально за допомогою перемикача -g.

Якщо встановлено локально, ви можете викликати двійковий файл із поточного каталогу node_modules.bin \, використовуючи

 .\node_modules\.bin\rmnodes "<top level directory within quotes>"

Якщо ви вибрали глобальну установку, просто використовуйте

rmnodes "<top level directory within quotes>"

і ось це .. цей пакет врешті-решт видалить node_modules з усіх підкаталогів рекурсивно (в моєму випадку близько 60 непарних папок) з легкістю. див. доданий знімок. використовуючи rm-node-module-recur


-1

Заздалегідь трохи побийте для кількох папок ...

Якщо у вас є папка проекту з декількома "збірками", що містить "node_module". Подібно до:

C:/Project/build-1/node_modules
C:/Project/build-2/node_modules
C:/Project/build-3/node_modules
C:/Project/build-4/node_modules

Ви хочете видалити всі папки, починаючи з "збирання"

! Спочатку встановіть nodejs та rimraf як було запропоновано вище!

Потім перейдіть на шлях із проектом та запустіть команду PowerShell

cd  C:/Project/
Get-ChildItem build* | foreach {rimraf -Path $_.FullName}

Знадобиться лукавство


-1

Ви можете зробити просту партію на основі відповіді @ mike-caron, тому вам не потрібно вводити кожен раз всю robocopyкоманду, а просто вводити шлях до вибраної папки:

@echo off
ECHO What Directory would you like to empty?
ECHO Current path: %cd%
SET /p UserInputPath=Input relative path to directory:
ROBOCOPY /MIR empty_dir %cd%\%UserInputPath% > NUL
PAUSE

Тут ви використовуєте порожню папку з іменем empty_dir в robocopyкоманді, яка повинна працювати в одному каталозі з пакетним файлом, щоб це працювало. Після завершення пакетного файлу робота вибраного каталогу і каталог empty_dir будуть порожніми, щоб ви могли їх видалити.

Я створив простий пакетний файл, який створює порожню папку і після виконання robocopyкоманди видаляє і порожню папку, і вибрану папку, так що єдине, що вам потрібно зробити, - це ввести шлях до вибраної папки, яку ви хочете видалити. Це швидко і практично, якщо ви не хочете встановлювати такі речі, як rimraf . Завантажити його можна тут https://github.com/5imun/WinCleaner


Хоча це посилання може відповісти на питання, краще включити сюди суттєві частини відповіді та надати посилання для довідки. Відповіді лише на посилання можуть стати недійсними, якщо пов’язана сторінка зміниться. - З огляду
Шерил Хохман
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.