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

一开始我只能通过另起文件夹的做法来重新启用新项目,发现僵尸文件越来越多,几翻周折,终于找到解决方法。步骤如下:
- 新建空白目录,如
D:\Study\;emptyDir - 管理员方式打开命令行窗口;
- 输入
robocopyD:\Study\D:\emptyDir\node_modules /purgeStudy
这里主要使用了robocopy命令,它是一个目录复制命令,配置好参数可以达到删除文件的效果,
命令语法:ROBOCOPY source destination [file [file]…] [options]
- source:源目录(驱动器:\路径或\\服务器\共享\路径)
- destination:目标目录(驱动器:\路径或\\服务器\共享\路径)
- [file [file]…]:要复制的文件(名称/通配符: 默认为 "*.*")
- 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文件放到要删除文件夹的同目录下,双击运行按提示输入即可批运行上面命令实现删除文件。
使用此命令前最好先直接删除一下,只有余下那些删不了的文件的时候再用此方法来删除,如直接用这个命令删除等待时间有点小长,删除时的情景大致如下:

增加方法2
另一种删除node_modules的方式,通过安装rimraf来删除,更接近前端,也是这篇博客的读者seaton的留言分享方法,亲测可行,非常感谢,特记录下来。
npm install rimraf -g
rimraf node_modules
个人能力有限,如果有能实现不输入文件夹直接回车就能直接删除node_modules文件夹的欢迎留言分享,谢谢,一起学习,一起进步!
删除顽固node_modules的更多相关文章
- Windows下删除顽固文件夹
参考链接: https://www.cnblogs.com/azbane/p/9808802.html 第一步:修改当前文件夹所有者为管理员 takeown /f * /a /r 第二步:修改管理员权 ...
- mac删除顽固图标
cd /Users/shelley/Library/Application\ Support/Dock cp 10CCA448-0975-41DE-B47A-8E89FD634227.db 10 ...
- npm 常用指令 使用指令删除 node_modules 包
查看 npm 命令 npm help 全局命令参数 -g npm install -g 安装全局 npm uninstall -g 卸载全局 全局node包中 i5ting_toc 这个包可以把md文 ...
- 彻底删除"提示删除文件和目录"时出错的文件或目录
当删除文件是出现上图时 能够用以下的方法删除文件 策略一:系统大法 第一招 进程帮你搞定 很多时候乱码文件名称里的文件是explorer.exe进程联系在一起的. 假设要删除的话能够这样:首先命令 ...
- Windows下强制删除文件或文件夹(解除文件占用/Unlock)
前言 在windows下,有时候会碰到一些文件无法删除,尽量使用“管理员取得所有权” ,但文件或文件夹依然无法删除,这一点非常苦恼. 本文记录几款可以解锁文件占用的软件. ProcessHacker ...
- 好用的npm模块记录
标签: node node盛行的今天,前端开发已经离不开npm模块的使用,大名鼎鼎的如gulp,webpack等,此处不多说,除了它们有那么几个常用的npm模块是我喜欢并依赖它的,下面就是我平时工作中 ...
- 使用 nvm 管理不同版本的 node 与 npm
补充说明:Mac 下通过 brew install nvm 所安装的 nvm ,由于安装路径不同,无法正确启用.建议使用 brew uninstall nvm 卸载掉之后,通过本文的方案重新安装一次. ...
- 什么是pe系统
Winpe全称 Windows Preinstall Environment,即“Windows 预安装环境”.是一个用于Windows 安装准备的最小操作系统. 基于保护模式下运行Windows X ...
- SQL注入:突破关键字过滤
一直以来都以为只有空格,tab键和注释符/**/可以用来切割sql关键字,段时间在邪八看了风迅cms注入漏洞那篇帖子,才知道原来回车也可以用来作为分割符(以前竟然没有想到,真是失败).回车的ascii ...
随机推荐
- HTTP 302 404 500 状态消息
1xx:信息 100 Continue 服务器仅接收到部分请求,但是一旦服务器并没有拒绝该请求,客户端应该继续发送其余的请求. 101 Switching Protocols 服务器转换协议:服务器将 ...
- [转]jQuery实现清空table表格除首行外的所有数据
1.其实网上有很多版本,试了好几个都不行,最后还是查到了一个非常方便的:不会清除表格第一行表头部分. 其中J_tab_fam是table的id. 1 $("#J_tab_fam tr:no ...
- dataGrid转换dataTable
#region dataGrid转换dataTable /// <summary> /// dataGrid转换dataTable /// </summary> ...
- linux Ubuntu(Segmentation fault)段错误出现原因及调试方法
在linux下编译了一个程序,尝试运行的时候出现: Segmentation fault (core dumped) 初步确认为...完全不知道是什么玩意. 于是找度娘了. ----------- ...
- mingw编译rtmp库
下载rtmpdump-2.4 进到里面的librtmp目录下面,执行命令:make SYS=mingw CRYPTO= 这样就编译成功静态库和动态库,如何安装到/usr/local/下面? 执行命令: ...
- Android中NDK的搭建及简单使用 Android.mk相关介绍 JNI的使用
Android中NDK的搭建及简单使用: 使用NDK,简述其重要步骤:.搭建NDK环境(作用:用于自动生成jni下的.c对应的so文件)---到Android NDK官网或Android官网下载ndk ...
- PHP程序员如何突破技术瓶颈
身边有几个做PHP开发的朋友,也接触到不少的PHP工程师,他们常疑虑自己将来在技术上的成长与发展,我常给他们一些建议,希望他们能破突自己,有更好的发展. 先明确我所指的PHP工程题,是指毕业工作后,主 ...
- javadoc错误: 编码gbk的不可映射字符
在使用Eclipse进行javadoc的导出时,提示“编码 GBK 的不可映射字符”,应该就是中文注释Eclipse不认,需要在调用javadoc.exe的时候传递编码集告诉它采用什么编码去生成jav ...
- Failed to load JavaHL Library.
以前使用的电脑是32位的,安装的svn可以正常使用,但是现在的电脑室64位的,安装好svn后,把项目提交到svn的过程中,总是弹出来一个错误的对话框: Failed to load JavaHL Li ...
- HTML + JS随机抽号。
[设置第三次抽取的号码为 (张三6)]<script language="javascript"> var k = 0 ; function star(){ k++ ; ...