彻底删除node_modules文件夹的两种方式

在工作中有用到gulp,webpack,使用他们需用依赖node的一些模块包,于是会在目录下生成一个node_modules文件夹。有一次想删掉它重新生成模块包的时候发现根本不太可能,无穷无尽的报一个错:路径太长(太深),无法删除,使用命令行rddel均尝试无效(此问题win10系统下已不会出现,小伙伴们赶紧更新系统吧)。

彻底删除node_modules文件夹的两种方式_第1张图片

一开始我只能通过另起文件夹的做法来重新启用新项目,发现僵尸文件越来越多,几翻周折,终于找到解决方法。步骤如下:

  1. 新建空白目录,如 D:\Study\emptyDir
  2. 管理员方式打开命令行窗口;
  3. 输入robocopy D:\Study\emptyDir D:\Study\node_modules /purge

这里主要使用了robocopy命令,它是一个目录复制命令,配置好参数可以达到删除文件的效果,

命令语法:ROBOCOPY source destination [file [file]…] [options]

  1. source:源目录(驱动器:\路径或\\服务器\共享\路径)
  2. destination:目标目录(驱动器:\路径或\\服务器\共享\路径)
  3. [file [file]…]:要复制的文件(名称/通配符: 默认为 "*.*")
  4. options参数设为/purse时可以删除源中不再存在的目标文件/目录。

此处以一个空文件做源文件,相当于目标文件里的所有文件都是要被删除的,至此解决了删除问题。

虽然解决了文件删除的问题,但是总感觉缺少点什么,那就是感觉操作有此频琐,于时想到是否可以把当前命令行打包成一个文件快速执行了,当时就想到.bat批处理文件。

于是百度脑补了下批处理文件制作方法,生成了如下批处理文件,代码大致如下:

@echo off
color 0b
mode con cols=80 lines=25
echo -----------------------------------------------------------------
echo                          顽固文件删除
echo -----------------------------------------------------------------
echo ******************************************************************
echo Tips:
echo 输入*:删除当前目录下的node_modules
echo 输入其它:则会删除对应文件名的文件夹
echo ******************************************************************
set /p deleFile=请输入您要删除的文件:
if %deleFile% == * (goto deleNodeModules) else (goto deleUserFile)

:deleNodeModules
md deleEmptyFile
robocopy deleEmptyFile node_modules /purge
rd node_modules
rd deleEmptyFile
exit

:deleUserFile
md deleEmptyFile
robocopy deleEmptyFile %deleFile% /purge
rd %deleFile%
rd deleEmptyFile
exit

本想实现当提示“请输入您要删除的文件”直接回车应该是直接删除node_modules文件夹,但是一直没能实现,暂时做到输入星号代表是删除node_modules文件夹,输入其它则是删除对应的文件夹名。批处理文件夹下载,可下载到本地再把其中的.bat文件放到要删除文件夹的同目录下,双击运行按提示输入即可批运行上面命令实现删除文件。

使用此命令前最好先直接删除一下,只有余下那些删不了的文件的时候再用此方法来删除,如直接用这个命令删除等待时间有点小长,删除时的情景大致如下:

彻底删除node_modules文件夹的两种方式_第2张图片

方法二:

按win+R打开运行对话框,输入cmd后回车,打开cmd后输入以下命令:

npm install rimraf -g

安装完后关闭cmd,打开你项目文件夹,按住shift,然后右键弹出菜单,找到并点击 在此处打开Powershell窗口 ,如图:

彻底删除node_modules文件夹的两种方式_第3张图片

输入以下命令后回车:

rimraf node_modules

稍等一会儿就把node_modules文件夹都删除了!

你可能感兴趣的:(js)