【问题标题】:How to Delete node_modules - Deep Nested Folder in Windows如何删除 node_modules - Windows 中的深层嵌套文件夹
【发布时间】:2015-03-26 08:18:48
【问题描述】:

在尝试删除 npm install 创建的 node_modules 目录时:

源文件名大于文件支持的名称 系统。尝试移动到路径名称较短的位置,或尝试 在尝试此操作之前重命名为更短的名称

我也试过 shift + delete 仍然有同样的问题。

【问题讨论】:

  • try renaming to shorter name(s) before attempting this operation
  • 感谢您的建议,@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\... 然后继续。手动重命名文件是不切实际的,我希望有更简单的方法而不编写程序
  • Webstorm可以全部删除。
  • 我使用了 Long Path Fixer 工具并成功删除了这个“.meteor”文件夹。 (long-path-fixer.en.softonic.com)
  • 运行安装,npm install rimraf -g,运行删除,rimraf node_modules

标签: node.js windows-7 npm


【解决方案1】:

由于这是谷歌搜索结果中的佼佼者,这对我有用:

更新,如果你有 npm v5,请使用 npx:

npx rimraf ./**/node_modules

否则安装 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/]

【讨论】:

  • 我是这篇博文的作者。 @olefrank:当您尝试删除整个文件夹(不仅仅是 node_modules)时,如果您碰巧在资源管理器窗口中打开了该文件夹,这往往会发生。 usagidon,感谢您链接原始来源。
  • 如果您没有 NodeJS,或者您在卸载 NodeJS 后尝试删除它的全局模块(这就是我不得不使用 robocopy 的原因),那将没有用处
  • 我将在此处添加我的 2 美分,以便更具体地解决问题。您可以像这样递归删除所有 node_modules 文件夹(使用通配模式):rimraf .\**\node_modules
  • 单行:npx rimraf node_modules。 Npx 包含在 NPM 5.2+ 中,是 npm 包的执行器,它会自动下载缺少的 npm 包。
  • @Artif3x 的评论应该被标记为最佳答案,哈哈!感谢递归删除的提示:-)
【解决方案2】:

我遇到了类似的问题,但由于某种未知原因,RD 无法正常工作。

NPM 可以摆脱它自己的混乱,所以如果你对 node_modules 中的每个目录执行npm uninstall [module-name],你就会摆脱它们。

(稍后我会为那些有很多依赖项的人查找如何批量循环。)

【讨论】:

    【解决方案3】:

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

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

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

    【讨论】:

    • 这在 Windows 7 上不起作用。目录不为空错误
    • 您还需要指定 -d 标志,这也会删除目录。
    • 或 -fR 递归爬到顶部并删除文件夹
    • @Karthiga -rf 是告诉 RM 如何执行删除操作的标志/选项/参数。 r 表示递归到任何子目录,f 表示强制删除(不提示)。 -rf 是一次指定多个标志/选项的 unix 约定。
    【解决方案4】:

    只使用 DOS 命令删除,无需任何安装:

    在 C 或 D 盘上创建一个空文件夹“test”并使用以下 DOS 命令

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

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

    不用担心您的测试文件夹会一直是空的,因此您可以随时将其删除。

    【讨论】:

    • 最佳答案,因为您不需要安装任何东西
    • 尝试 rimraf 并添加网络文件夹后,这是我找到的最干净的解决方案。感谢分享。
    • 很好的解决方案;容易。
    • 我刚刚做了一个小补充:> NUL。当我刚刚尝试这个时,它被控制台限制了,并且需要 15 分钟或更长时间。重定向到位后,它在大约 2 内完成
    • 有趣的是,为了删除一些JS文件,你还需要另一个JS库。
    【解决方案5】:

    在 Windows 上,使用 Total Commander 您只需选择文件夹单击 shift + delete 。不要忘记 shift 键。

    【讨论】:

    • 这是最好的解决方案! TC 删除文件夹没有卡顿,真的很快
    【解决方案6】:

    在 Windows 中删除像 node_modules 这样的 Deep Netsted 文件夹

    1. 选项 1

      使用rimraf NPM 包删除

      • 打开命令提示符并将您的目录更改为所在的文件夹 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
    • 已修复:我必须重新启动计算机。有东西在使用node_modules,但它给了我一个权限错误。
    【解决方案7】:
    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

    【讨论】:

      【解决方案8】:

      我只是通过使用 Winrar 完成了这项工作,这可能看起来是一个奇怪的解决方案,但效果很好。

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


      [更新] 这也适用于 7Zip

      【讨论】:

      • 哇,这太狡猾了! +1 一直在使用 robocopy,但显然这已经用新的 npm 或其他东西修复了。
      • @ChrisS 它如何与 7Zip 一起工作?尤其是在使用 GUI 时!
      • 在 2016 年(尤其是 2018 年),您不必这么聪明地删除一堆文件。
      • 是的,你会认为如果 winrar 可以解决这个问题,他们可以让 windows shell 来做......
      • @bennos,它与 7-Zip 类似。选择Add to Archive 打开图形用户界面。有一个选项Delete files after compression
      【解决方案9】:

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

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

      rm /c/users/stu/projects/mynodeproject -rfd

      【讨论】:

        【解决方案10】:

        this MSDN article 的外观看来,您现在可以通过更改注册表中的值或通过组策略绕过 Windows 10 v1607(又名“周年更新”)中的 MAX_PATH 限制

        【讨论】:

          【解决方案11】:

          我使用 GitBash 删除了 de 文件夹!

          rm -r node_modules
          

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

          【讨论】:

          • 这对我有用。我之前使用的是rimraf。 rimraf 没用,我试过了。
          • 这应该是顶级评论。不,安装一些东西只是为了删除一些东西。或者只需输入RD node_modules
          • 要删除具有多个项目的文件夹中的所有 node_modules 文件夹,请使用:rm -r ./**/node_modules
          【解决方案12】:

          任何文件管理器都允许避免此类问题,例如Far Manager

          【讨论】:

          • 我已经 10 多年没有看到有人使用这种界面了。J 让我很开心。
          【解决方案13】:

          simple 仅适用于 我尚未针对其他操作系统测试过的 Windows

          rm -r node_modules
          

          其实你可以用这个删除任何文件夹。

          喜欢 rm -r AnyFolderWhichIsNotDeletableFromShiftDeleteOrDelete。

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

          希望这会有所帮助。

          谢谢, 阿杰·科特纳拉

          【讨论】:

            【解决方案14】:

            只需使用 powershell..

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

            rm [yourfolder]
            

            如:

            rm node_modules
            

            【讨论】:

              【解决方案15】:

              试用 Visual Studio Code

              在尝试了许多解决方案后,我发现这个非常简单。 只需在可视代码中打开项目并将其删除即可。 UI 可能会冻结几秒钟,但它肯定会工作。我使用许多大型 node_modules 文件夹进行测试

              谢谢

              【讨论】:

              • 奇怪的工作! :) 即使在安全模式下,我也一直试图将其删除,甚至使用过sudo su,但没有任何帮助。顺便说一句,我在 OSX 上运行,直到我升级到 Mojave 才发生在我身上。
              • 也适用于 Windows 10,但我必须多次使用该命令。
              • 聪明的想法,但遗憾的是在我的 Angular 项目中并没有更快
              • 非常感谢,像冠军一样工作。其他解决方案对我不起作用。
              【解决方案16】:

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

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

              【讨论】:

                【解决方案17】:

                我使用的一种解决方案:

                (在使用 CI 环境时,我宁愿避免安装新的扩展程序 (rimraf)。)

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

                【讨论】:

                  【解决方案18】:

                  太简单了。

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

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

                  【讨论】:

                  • 老实说,这是更快的方法,但需要很大的耐心。如果您一次删除几个文件夹会更好。
                  【解决方案19】:

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

                  按照usagidon 推荐的前两个步骤进行操作,如果您有问题或错误,请尝试

                  npm uninstall rimraf & rimraf node_modules
                  

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

                  【讨论】:

                    【解决方案20】:

                    不完全相关,但由于这是我在寻找类似解决方案时发现的第一篇文章,我认为值得在这里发布。

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

                    rimraf 没有工作,因为它仍然遇到权限问题。

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

                    【讨论】:

                      【解决方案21】:

                      在 Windows 上,我的首选解决方案是使用 rmdir command:

                      rd /S .\node_modules\

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

                      【讨论】:

                        【解决方案22】:

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

                        【讨论】:

                        • 简单的一个。谢谢
                        • ...\node_modules 有子级并且未指定 Recurse 参数。如果您继续,所有子项将与该项目一起被删除。你确定你要继续吗? [Y] 是 [A] 全部是 [N] 否 [L] 全部否 [S] 暂停 [?] 帮助(默认为“Y”): Y rd : 目录 C:\...\node_modules\ngx -color-picker\dist 不能被删除,因为它不为空。 rd node_modules -recurse
                        • rd node_modules -recurse
                        • @AUSTX_RJL rd 也可以,但我从来没有遇到过 del node_modules 的问题。有线,但是 tnx 以任何方式在 PS 中删除的另一种方式
                        【解决方案23】:

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

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

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

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

                        【讨论】:

                          【解决方案24】:

                          提前一点为多个文件夹...

                          如果您的项目文件夹包含多个包含“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}
                          

                          这将需要一个诡计

                          【讨论】:

                            【解决方案25】:

                            对我有用的是:

                            1. 关闭节点管理器控制台
                            2. 关闭您所在的 Atom (visual studio code) 开发环境。
                            3. 然后删除node_modules

                              npm install rimraf -g 
                              rimraf node_modules
                              

                            【讨论】:

                              【解决方案26】:

                              尝试了一切,但没有奏效。以上所有方法均无济于事。我终于可以通过 VSCode 删除了。

                              1. 只需使用 VSCode 打开根文件夹即可。
                              2. 选择node_modules文件夹并删除。
                              3. 利润。 (需要few milliseconds 才能删除。)

                              【讨论】:

                                【解决方案27】:

                                您可以根据 @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
                                

                                您在robocopy 命令中使用名为empty_dir 的空目录,该命令需要与批处理文件位于同一目录中才能正常工作。批处理文件完成其工作后,所选目录和 empty_dir 目录都将为空,以便您可以删除它们。

                                我制作了一个简单的批处理文件来创建空文件夹,并在执行robocopy 命令后删除空文件夹和选定文件夹,这样您只需输入要删除的选定文件夹的路径即可。 如果您不想安装 rimraf 之类的东西,它既快速又实用。 你可以在这里下载它https://github.com/5imun/WinCleaner

                                【讨论】:

                                  【解决方案28】:

                                  我创建了一个 Windows 上下文项来快速删除 node_modules 或其他文件夹。 当 Windows 由于目录路径中的一些无效字符而没有删除文件夹时,我会使用它。

                                  如何安装?

                                  1. 安装 rimraf => npm install rimraf -g

                                  2. 新建一个名为delete.bat的文件,设置内容如下并复制到c:\windows\system32\

                                    删除.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 文件以导入注册表。

                                    完成!

                                  【讨论】:

                                  【解决方案29】:

                                  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}
                                  

                                  【讨论】:

                                    【解决方案30】:

                                    您可以专门为此目的使用另一个 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 个奇怪的文件夹)。参考附加的快照。 using rm-node-modules-recur

                                    【讨论】:

                                      猜你喜欢
                                      • 2015-07-07
                                      • 2020-01-25
                                      • 1970-01-01
                                      • 1970-01-01
                                      • 2022-07-29
                                      • 1970-01-01
                                      • 2023-02-01
                                      • 2019-11-30
                                      • 2015-02-13
                                      相关资源
                                      最近更新 更多