当前位置: 首页 > 后端技术 > Node.js

使用脚本快速清理多余的node_modules或其他垃圾文件

时间:2023-04-03 20:38:10 Node.js

效果刚刚编写的脚本自动删除电脑中的node_modules文件或其他文件。支持配置,可以指定扫描目录,清除一些老项目中的依赖。快速清理了一下,多了4个G,还是挺舒服的。原因是电脑容量比较小,只有120G,需要经常清理硬盘。微信的缓存文件大部分都清理干净了。今天发现代码也很占地方。平时前端和Node.js写的多一点,代码不会占用太多容量,所以应该是项目的图片资源和node_modules的问题。查了一下,是真的。很多项目虽然很老,但是碍于电脑容量,直接把整个代码删掉,实在是太可惜了。所以最好分批清除这些依赖。如果手动点击一个一个删除,会很麻烦。就算这次手动删除完了,过段时间还得手动删除。所以不如只写一个脚本,让脚本来做这件事。而且,下次改变参数可以应用到其他场景,或者增加一些前置条件也可以做更多的事情。代码importosimporttimeimportshutil#脚本名称:autoDelete.py#脚本用途:自动删除指定文件夹下的相关文件夹,比如批量删除node_modules依赖defget_dirsize(dirPath):size=0forroot,dirs,os.walk中的文件(dirPath):对于文件中的文件:尝试:name=os.path.join(root,file)temp=os.path.getsize(name)size+=tempexceptIOError:error="Fileexception"returnsize/(1024*1024)defauto_delete(file_dir,target,days):sum_size=0forroot,dirs,filesinos.walk(file_dir):#Getalldirectoriesfordirindirs:ifdir==target:abs_dir=os.path.join(root,dir)#无需扫描子级node_modulesif(abs_dir.count(target)>1):breakdiff_time=(time.time()-os.path.getmtime(abs_dir))/60/60/24size=get_dirsize(abs_dir)ifdiff_time>days:#这行是清空文件夹的代码,建议运行命令扫描再次确保所有扫描的文件都可以删除,然后取消注释#shutil.rmtree(abs_dir)print("Deleted:%s"%(abs_dir))print("Foldersize:%.2fMB"%(size))print("上次更新时间已经过了%.2f天"%(diff_time))print("--------")sum_size+=sizeprint("自动删除了%d天未更新%sfoldersavestotally%.2fMBspace"%(days,target,sum_size))#inputdirectoryaddressroot="/Users/zengzhiqiang/Desktop"#inputfoldernametarget="node_modules"#recent300不要删除文件夹天已修改。这里的target="node_modules"也可以改成其他的,比如"=logs",这样可以删除一些日志文件。或者target="assets",days=365,删除太久没有更新的旧资源文件。最后一个脚本,代码比较简单。本文只是给大家抛砖引玉,希望能拓宽大家的思路,发散思路。如果以后遇到重复性的问题,或许可以尝试写一个脚本。当然最直接的解决办法就是换电脑,或者谷歌一下如何快速清除xxx文件。附上GitHub地址:https://github.com/qiangzi772...