删除 node_modules 文件夹非常耗时 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
#Wrapper { background-color: #1d1d1d; } code { background-color: #222; color: #fff; } .outdated { background-color: #222; color: #999; border-left: 5px solid #333; border-bottom: 1px solid #3f4138; } .box { background-color: #303030; color: #d2d8ba; border-bottom: 1px solid #36382e; } .topic_content, .reply_content { color: #ffffff; } .cell, .header { border-bottom: 1px solid #3f4138; } a:link, a:visited, a:active { color: #80bd01; text-decoration: none; text-shadow: none } a:hover { text-decoration: underline; } a.vote:link, a.vote:visited, a.vote:active, .page_normal:link, .page_normal:visited, .page_normal:active, .page_current:link, .page_current:visited, .page_current:active { color: #80bd01; text-decoration: none; text-shadow: none; border-color: #80bd01; background-color: transparent; } a.vote:hover, .page_normal:hover, .page_current:hover { text-decoration: underline; color: white; border-color: white; } a.op:link, a.op:visited, a.op:active { background-color: rgba(0, 0, 0, 0.8); border: 1px solid rgba(0, 0, 0, 0.9); } a.op:hover { background-color: rgba(0, 0, 0, 1); border: 1px solid rgba(0, 0, 0, 1); color: #bfd46b; } a.tag:link, a.tag:visited, a.tag:active { background-color: rgba(0, 0, 0, 0.8); border: 1px solid rgba(0, 0, 0, 0.9); } a.tag:hover { background-color: rgba(0, 0, 0, 1); border: 1px solid rgba(0, 0, 0, 1); color: #bfd46b; } a.count_livid:link, a.count_livid:visited, a.count_livid:active { color: #d2d8ba; background-color: #33342d; } a.count_livid:hover { color: #fff; background-color: #4f5146; } .highlight { background-color: #222; } .mll, .sll, .mle { background-color: #46483e; color: #d2d8ba; border: 1px solid #3f4138; } .mll:focus, .sll:focus, .mle:focus { box-shadow: 0pt 1px 2px rgba(0, 0, 0, 0.18) inset, 0px 0px 5px rgba(210, 216, 186, 0.5); } .avatar { box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.25); } .subtle { background-color: transparent; border-left: none; padding: 10px; } span.no { background-color: #606452; color: #bfd46b; } .inner:hover a.thank:hover, .cell:hover a.thank:hover { background-color: #606353; } .thanked { background-color: #6a6d5e; color: #bfd46b; } -->
xkwdm
V2EX    Node.js

删除 node_modules 文件夹非常耗时

  •  
  •   xkwdm 46 天前 6863 次点击
    这是一个创建于 46 天前的主题,其中的信息可能已经有所发展或是发生改变。

    删除 node_modules 文件夹非常耗时。用伙火绒的粉碎也慢。大伙儿有没有好用的软件和方法啊?

    感谢各位大佬的指点

    65 条回复    2025-10-15 15:34:44 +08:00
    urlk
        1
    urlk  
       46 天前   1
    用终端删, 或者使用 pnpm
    xtreme1
        3
    xtreme1  
       46 天前
    rimraf
    vvxu
        4
    vvxu  
       46 天前
    使用 rimraf ,我在 windows 上改成别名 rmrf ,天天爽删
    luoyide2010
        5
    luoyide2010  
       46 天前   2
    用 cmd 命令来删 rmdir /s /q [路径]会快很多,粉碎文件需要将文件彻底删除,这种是最慢的
    lisxour
        6
    lisxour  
       46 天前   2
    用各种命令行工具删除都应该会快不少,资源管理器毛病就是会提前统计一大堆信息再删除,所以非常慢
    zhuoyan
        7
    zhuoyan  
       46 天前
    #!/bin/bash
    find . -type d -name "node_modules" | while read dir; do
    echo "Deleting: $dir"
    rm -rf "$dir"
    done
    Baymaxbowen
        8
    Baymaxbowen  
       46 天前
    FastCopy
    renmu
        9
    renmu  
       46 天前 via Android
    shift+delete
    karott7
        10
    karott7  
       46 天前
    用命令行工具
    SanjinGG
        11
    SanjinGG  
       46 天前
    rm -rf 很快
    cat
        12
    cat  
       46 天前
    永久删除很快,就是楼上说的 shift+del ,移入回收站就很慢
    liaohongxing
        13
    liaohongxing  
       46 天前
    换 ssd
    hwdq0012
        14
    hwdq0012  
       46 天前   1
    如果是 windows ,先把实时文件防护关掉,
    回收站 如果和 被删除的文件没在一个盘符,shift + del 直接删除不放回收站
    forbreak
        15
    forbreak  
       46 天前
    命令行删除,gui 删除,windows 要先统计大小数量什么的,会慢很多。
    asdhak
        16
    asdhak  
       46 天前   6
    想到个图
    96
        17
    96  
       46 天前
    Windows10

    似乎命令( Remove-Item -Path node_modules -Recurse -Force )要比手动删除( shift+del )快很多
    jqknono
        18
    jqknono  
       46 天前   1
    可以试试 win11 的 dev drive, REFS 文件系统, 支持 COW, 重复文件的处理上速度很快.
    项目地址: https://github.com/jqknono/migrate-to-win11-dev-drive
    这里有关于 REFS 的风险讨论: t/1161663
    gesse
        19
    gesse  
       46 天前
    是不是应该换个固态硬盘?
    icanfor
        20
    icanfork  
       46 天前
    删除它做啥,有问题了重新整理
    Hyxiao
        21
    Hyxiao  
       46 天前
    让我想起了,之前在服务器,手贱在 ssh 工具的左边工具栏,手动点击了删除,直接导致 ssh 工具直接卡死,后面乖乖使用了 rm rf node_module/
    redbeanzzZ
        22
    redbeanzzZ  
       46 天前
    rimraf
    peteretep
        23
    peteretep  
       46 天前
    换固态硬盘
    dufu1991
        24
    dufu1991  
       46 天前
    我猜你用的是 Windows ,它删除文件之前好像先将每层文件夹读取一遍才开始删除,不知为何脱裤子放屁。
    gam2046
        25
    gam2046  
       46 天前
    @dufu1991 #24 因为需要展示进度条,得先知道总共有多少

    因此直接用命令行删除就可以了

    Windows: rd /s /q node_modules
    Unix: rm -rf node_modules
    Lockroach
        26
    Lockroach  
       46 天前
    直接用命令 rm -rf ,在 VSCode 等 editor 里面图形化删除似乎是会执行多余的操作导致耗时变长
    461229187
        27
    461229187  
       46 天前   1
    换 Mac ,无感删除
    cwcc
        28
    cwcc  
       46 天前
    往好处想,它在你作死使用 rm -rf / --preserve-root 命令时可以救你一命。
    fun201108
        29
    fun201108  
       46 天前
    先移动,空闲时再删除
    fun201108
        30
    fun201108  
       46 天前
    移动到一个空文件夹里,空闲时删除
    MIUIOS
        31
    MIUIOS  
       46 天前
    用命令行秒删 你用 gui 删实际是移动到回收站 肯定慢
    CodeCodeStudy
        32
    CodeCodeStudy  
       46 天前
    使用 git bash 这个命令行,进入到项目目录,然后执行命令 rm -rf node_modules
    YShell
        33
    YShell  
       46 天前
    在 package.json 的 script 中加了个快捷命令"clean": "npx rimraf node_modules",
    94
        34
    94  
       46 天前
    pnpm 解君愁
    cat
        35
    cat  
       46 天前
    好像没人说 npx npkill
    lichuyi
        36
    lichuyi  
       46 天前
    npkill
    jixule
        37
    jixule  
       46 天前
    rimraf n (tab enter)
    Esec
        38
    Esec  
       46 天前 via Android
    总不能一项目一硬盘分区,代码拷走快速格式化吧
    FishBear
        39
    FishBear  
       46 天前
    FastDelete.bat

    ```
    @ECHO OFF
    ECHO Delete Folder: %CD%?
    PAUSE
    SET FOLDER=%CD%
    CD /
    DEL /F/Q/S "%FOLDER%" > NUL
    RMDIR /Q/S "%FOLDER%"
    EXIT
    ```

    del /f/s/q 你的文件夹 > nul
    rmdir /s/q 你的文件夹
    tog
        40
    tog  
       46 天前
    @luoyide2010 正解。
    还有就是换 mac 哈哈
    Leoking222
        41
    Leoking222  
       46 天前
    windows ,先把实时文件防护关掉。
    mac 删除挺快的吧
    canvascat
        42
    canvascat  
       46 天前
    使用 wsl ,然后 rm -rf ,挺快的。
    windows 的话 shift+del ,比直接 del 快一点
    stimw
        43
    stimw  
       46 天前
    只有 windows 是这样的
    artiga033
        44
    artiga033  
       46 天前 via Android   2
    robocopy 最快
    先建一个空文件夹如 C:\Empty

    robocopy.exe "C:\Empty" "./node_modules" /MIR /NFL /NDL /MT:32

    最后的 /MT 是线程数,如果你的 CPU 很强也可以开更高
    ygweric
        45
    ygweric  
       46 天前
    我会先重命名为一个随意的名字,拖拽到别的文件夹,比如“下载”,后面统一慢慢删
    dumbass
        46
    dumbass  
       46 天前
    rm -rf node_modules 很快啊
    bearbest
        47
    bearbest  
    PRO
       46 天前
    直接 rm -rf node_modules 就好了,都是开源的依赖,又没啥隐私文件,没必要使用文件粉粹功能
    Ccbeango
        48
    Ccbeango  
       46 天前
    windows 可以安装个 npkill
    duan602728596
        49
    duan602728596  
       46 天前
    windows 系统的问题,在 mac 上直接拖到回收站 1s 删除
    1103409364
        50
    1103409364  
       46 天前
    rm -rf 很快
    wangtian2020
        51
    wangtian2020  
       46 天前
    不应该存在需要删的情况
    slowgen
        52
    slowgen  
       46 天前
    可以用华硕的 RAMDisk https://dlcdnets.asus.com/pub/ASUS/mb/14Utilities/ASUS_RAMDisk_V2.03.00_for_Windows_10_64-bit.zip (有 Referer 校验,需要地址栏输入打开)
    把内存分出来当硬盘,结合 WSL1 在里面使用 rm -rf 删除,超快
    aec4d
        53
    aec4d  
       46 天前
    如果是 unix 系,试试世界上最快的删除方案 rmz
    https://alexsaveau.dev/blog/projects/performance/files/fuc/fast-unix-commands
    qianxuu
        54
    qianxuu  
       46 天前
    FastCopy
    shahow
        55
    shahow  
       46 天前
    FastCopy
    msg7086
        56
    msg7086  
       45 天前
    FastCopy 秒删,我都拿来清 QQ 图片目录,几万几十万文件几秒钟给你干完。
    xkwdm
        57
    xkwdm  
    OP
       45 天前
    感谢各位,根据回复我测试了下面这些方式,忘记说明了我是 windows 下要删除 node_modules 文件。

    rd /s /q node_modules
    Remove-Item -Recurse -Force node_modules
    上面两个命令删除效率低,非常慢而且看不到处理信息。

    npkill -d
    这个命令工具好处是可以列出目录下所有的 node_modules 文件夹并且计算大小,也可以选择删除,但是在计算文件大小过程中非常慢,没执行完我就退出了。

    @artiga033 兄弟提供的方法 “robocopy.exe "C:\Empty" "./node_modules" /MIR /NFL /NDL /MT:32” YYDS ,最快。

    以上,感谢各位的帮助。么么么哒~
    xkwdm
        58
    xkwdm  
    OP
       45 天前
    刚才下载了 FastCopy 比单纯执行命令更好,可视化,效率高。推荐
    arfaWong
        59
    arfaWong  
       45 天前
    别用 windows 系统,用 macOS Linux 系统都没有这样的问题
    mmdsun
        60
    mmdsun  
       45 天前 via iPhone
    Windows 请用 Dev Drive ,Windows 文件操作慢是因为资源管理器提供 暂停、继续的功能,比如你 U 盘剪切文件,可以暂停。拔出 U 盘,后面插回 U 盘文件操作进度也不会丢失。缺点要提前收集很多信息
    UnluckyNinja
        61
    UnluckyNinja  
       45 天前
    别用 windows 右键删除就行了,各种命令行工具都可以,右键要算文件数量还要算大小给你显示个进度,才导致的慢。你删掉 lockfile 让包管理器重装都没这么慢
    coderwink
        62
    coderwink  
       45 天前
    rimraf
    Oscar1994
        63
    Oscar1994  
       45 天前
    @asdhak 我就知道
    wszszh
        64
    wszszh  
       45 天前
    用 mac
    meteora0tkvo
        65
    meteora0tkvo  
       45 天前
    @icanfork #20 有时候,会报一些奇奇怪怪的问题。把 node_modules 文件夹里的内容删了,然后重新下载依赖就好了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2733 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 08:35 PVG 16:35 LAX 00:35 JFK 03:35
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86