如何删除node_modules-Windows中的深度嵌套文件夹


229

尝试删除以下用户创建的node_modules目录时npm install

源文件名大于文件系统支持的名称。尝试移动到路径名较短的位置,或尝试重命名为较短的名称,然后再尝试执行此操作

我也尝试过shift+ delete,但仍然遇到相同的问题。


try renaming to shorter name(s) before attempting this operation
SLaks

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 2015年

1
Webstorm可以删除所有。
ozzimpact

我使用了Long Path Fixer工具,并成功删除了该“ .meteor”文件夹。(long-path-fixer.en.softonic.com
Vu Doan

运行安装,npm安装rimraf -g,运行删除,rimraf node_modules
Balu

Answers:


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,目录不为空”。并且提供的链接不起作用!
olefrank

7
我是博客文章的作者。@olefrank:当您尝试删除整个文件夹(不仅是node_modules),并且碰巧在Explorer窗口中打开了该文件夹时,往往会发生这种情况。usagidon,感谢您链接原始来源。
尼古拉

2
如果您没有NodeJS,或者卸载后试图删除
NodeJS

1
我将在此处添加2美分,以使该问题更具体。您可以递归删除所有node_modules文件夹(使用globbing模式),如下所示:rimraf .\**\node_modules
Artif3x

1
@ Artif3x的共同点应标记为最佳答案!感谢您递归删除的提示:-)
Juan Stoppa

111

我只是通过使用Winrar来做到这一点,这似乎是一个奇怪的解决方案,但效果很好。

  • 右键点击node_modules文件夹
  • 选择Add to archive ...从菜单。
  • Winrar对话框打开
  • 只是检查选项 delete files after archiving
  • 完成后不要忘记删除node_modules.rar。


[更新]这也适用于7Zip



7
哇,这是偷偷摸摸的!+1曾使用robocopy,显然这已通过新的npm或其他解决了。
erp

1
@ChrisS如何与7Zip一起使用?特别是在使用GUI时!
bennos

4
在2016年(尤其是2018年),您不必这么聪明就可以删除一堆文件。
webelo

73

仅通过使用DOS命令删除而不进行任何安装:

在C或D驱动器上创建一个空文件夹“测试”,并使用以下DOS命令

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

完成上述命令后,您的文件夹将为空,现在您可以删除该文件夹。

不用担心您的测试文件夹将始终为空,因此您可以随时将其删除。


12
最佳答案,因为您不需要安装任何东西
luschn 2015年

1
尝试rimraf并添加网络文件夹后,这是我找到的最干净的解决方案。感谢您分享。
danyim '16

1
很好的解决方案;简单。
bob.mazzo

2
我只是做了一点补充:> NUL。当我刚尝试此操作时,它正在被控制台限制,将花费15分钟或更长时间。重定向到位后,它大约在2
Mike Caron

有趣的是,为了删除一些JS文件,您需要另一个JS库。
linuxunil '18

30

您可以使用Git Bash删除文件夹:

示例: c:\ users \ olefrank \ projects \ mynodeproject

rm -rf / c / users / olefrank / projects / mynodeproject


9
这在Windows 7上不起作用。目录不为空错误
Miguel Stevens

5
您还需要指定-d标志,这也会删除目录。
Stuart.Sklinar '16

或-FR递归登顶,并删除该文件夹,以及
丹甘孜

@Karthiga -rf是标志/选项/参数,它们告诉RM如何执行删除操作。 r表示要递归到任何子目录,并f表示要强制删除(不提示)。 -rf是一次同时指定多个标志/选项的Unix约定。
蒂姆·科克

20

我用GitBash删除了文件夹!

rm -r node_modules

删除所有内容花了一段时间,但对我有用!


这对我有用。我之前使用的是rimraf。rimraf没有用,我尝试了这个。
Saiyaff Farouk

这应该是头条评论。不,安装某些东西只是为了删除某些东西。.或者,只需键入RD node_modules
David MacNeil

15

在Windows中删除Deep Netsted文件夹,例如node_modules

  1. 选项1

    使用rimrafNPM软件包删除

    • 打开命令提示符,并将目录更改为文件夹所在的 node_modules文件夹。

    • rimraf node_modules

    • 缺少rimraf错误,然后安装

      npm install rimraf -g

    • 安装完成后,运行

      rimraf node_modules

  2. 选项2

    无需安装任何东西即可清理

    • test在任何驱动器中创建一个具有名称的文件夹

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

    • 删除文件夹testFolderToDelete并且两者都为空

为什么这是Windows中的问题?

深度嵌套文件夹结构之一是node_modules,Windows无法删除该文件夹,因为其名称太长。为解决此问题,轻松解决方案,安装节点模块RimRaf


Error: EPERM: operation not permitted
特拉维斯·海特

1
修正:我必须重新启动计算机。某些东西正在使用node_modules,但它给了我一个权限错误。
特拉维斯·海特

8

试试Visual Studio Code

在尝试了许多解决方案之后,我发现这一解决方案非常简单。只需使用Visual代码打开项目并将其删除。UI可能会冻结几秒钟,但绝对可以正常工作。我使用了很多大型的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中的每个目录都这样做,则可以摆脱它们。

(对于那些有很多依赖性的人,我将在稍后查找如何批量循环。)



4

只需在Windows上运行即可,我尚未在其他操作系统上进行过测试

rm -r node_modules

实际上,您可以使用此方法删除任何文件夹。

rm -r AnyFolderWhichIsNotDeletableFromShiftDeleteOrDelete。

只需打开gitbash移动到文件夹的根目录并运行此命令

希望这会有所帮助。

谢谢,Ajay Kotnala




2

我只是在PowerShell上的项目文件夹中执行del node_modules,它将询问您是否要删除它及其子文件夹,只需单击“ Y”就可以了


简单的一个。谢谢
estin阳光明媚'18

... \ 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路也可以,但是我从来没有与德尔node_modules一个问题..有线,但用于删除PS的另一种方式TNX任何方式
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. 运行fast-delete.reg文件以导入注册表。

    做完了!

最后结果


1

我使用的一种解决方案:

(在使用CI环境时,我希望避免安装新的扩展(rimraf)。)

  1. A)将packages.json重命名为其他名称。B)特别是在CI上-安装npm后,我通常会删除文件而不是重命名它,但是如果您需要它,则不必这样做。那是你的选择。
  2. 运行npm init-这将创建一个空packages.json文件(无依赖项)
  3. 运行npm prune-这将使node_modules与-的依赖项部分匹配packages.json-由于步骤#2现在为空。
  4. 如果您选择了#1.A。步骤,删除新创建的packages.json,然后将original重命名packages.json为其原始名称。

1

太容易了。

只需删除node_modules内的所有文件夹,然后删除实际的node_module文件夹。

这对我有用。好运....


老实说,这是更快的方法,但是需要很多耐心。如果您一次删除几个文件夹,那就更好了。
桑托什

1

在Windows上,我的解决方案是使用rmdir命令

rd /S .\node_modules\

如果第一次失败,请再试一次。还要检查您当前是否正在使用模块(npm run serve或类似模块)运行脚本。


0

从此MSDN文章的外观看,您现在似乎可以通过更改注册表中的值或通过组策略来绕过Windows 10 v1607(又称为“周年更新”)中的MAX_PATH限制


0

只需使用powershell ..

运行powershell和cd到父文件夹,然后:

rm [yourfolder]

如:

rm node_modules

0

我在Windows 10上,无法删除带有“目录不为空”消息的文件夹。rimrafrm -rf都不

将空文本文件复制到每个单个文件夹就可以了-我能够删除完整的node_modules文件夹。


0

有时,即使您rimraf全局安装,也可以具有本地rimraf依赖关系(SASS通常具有此依赖关系)。在这种情况下,我将运行以下命令:

如果有问题或错误,请按照usagidon的建议执行前2个步骤。

npm uninstall rimraf & rimraf node_modules

这将删除本地rimraf并使用全局的


0

并不完全相关,但这是我在搜索类似解决方案时发现的第一篇文章,我认为值得在此处发表。

在尝试安装electron-redux失败后,我试图删除我的node_modules文件夹时遇到了Windows 10上的权限问题。似乎electron-redux将@types添加到了我的node_modules中,它设置了错误的权限。

rimraf无法正常工作,因为它仍然遇到许可问题。

我最终重命名了node_modules,然后进行了一个简单的删除。


0

好的,所以我的问题是我在node_modules中有.bin文件夹,但我无法删除该文件夹,我尝试了所有上述解决方案,但均无效果。

重复的错误是“您无权删除该文件夹或该文件夹已被其他程序使用”。

我发现“我的PC上安装了防病毒软件,这是在不知不觉中使用了node_modules文件夹中的文件”的解决方案。

我已卸载防病毒软件,或者您可以从防病毒设置选项更改权限设置(取决于您使用的防病毒软件)。现在,我可以删除node_modules文件夹。


0

对我有用的是:

  1. 关闭节点管理器控制台
  2. 关闭了您所在的Atom(Visual Studio代码)开发环境。
  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-modules-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

您要删除所有以“ build”开头的文件夹

!首先按照上面的建议安装nodejsrimraf

然后转到项目路径并运行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


尽管此链接可以回答问题,但最好在此处包括答案的基本部分,并提供链接以供参考。如果链接的页面发生更改,仅链接的答案可能会失效。- 评分
SherylHohman
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.