前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >专为程序员定制的垃圾清理工具(Node Cli实现)

专为程序员定制的垃圾清理工具(Node Cli实现)

作者头像
秋风的笔记
发布2020-10-27 11:35:58
5480
发布2020-10-27 11:35:58
举报
文章被收录于专栏:秋风的笔记

前言

1584517625611

就是这个恶毒的提示,太让我烦恼了,一开始我用了腾讯的 lemon 清理工具,但是发现他并不能很好地解决我的问题,没有办法完全找出我的缓存文件。由于本人是 256G Mac (穷....),真的,256G 太不够用了(当然不是因为我....的原因),俗话说贫穷限制了我的想象力,但是没有限制我的创造力。另一点,就是本人是个写前端的,通过对本地的node_modulesnpmyarn cache 等缓存的分析,发现让我大吃一惊,几十G的缓存。

基于以上前提,我就开发了一个工具,名字叫 shark-cleaner,寓意就是想让它想鲨鱼一样,快速!能够快速找出我本地文件中的软件开发缓存。

这是它已经为我清理出的node_modules垃圾。

1584506218384

技术方案

社区现状

1.直接命令行

Mac / Linux:

代码语言:javascript
复制
$ cd documents
$ find . -name 'node_modules' -type d -prune -print -exec rm -rf '{}' \;

Windows:

代码语言:javascript
复制
$ cd documents
$ FOR /d /r . %d in (node_modules) DO @IF EXIST "%d" rm -rf "%d"

Powershell Users:

代码语言:javascript
复制
Get-ChildItem -Path "." -Include "node_modules" -Recurse -Directory | Remove-Item -Recurse -Force
2.命令行工具

https://github.com/voidcosmos/npkill

我的技术方案

社区有一些相关的方案,但是我想的是能够提供一个可视化的,跨平台的,并且有详细颗粒度信息的工具。

一开始我想的是 electron来做这件事是比较合适的,但是我想等不及想要更加快速的开发,想着是先用命令行代替。(其实核心功能实现后,迁移到 electron 还是很方便的)。

因此我采用了一种 web + node cli 的方式。下面是工具的主架构,有点类似于electron 的思路吧

image-20200323183613601

功能实现

自定义目录扫描

如果你的项目都在一个目录下,建议填写你的项目主目录,这样会大大加快扫描的速度。

支持静态目录扫描

由于一些目录是固定的,因此为静态列表扫描方式。

image-20200323201436758

支持详情查看

获取 package.json 中的 authordescription 进行展示,以及标注完整路径,可以帮助回忆,来确定是否删除。

image-20200323201418168

支持多选

文件太多了?shift + click 来支持多选模式。

2020-03-23-20.22.19

i18n支持

国外用户也可以轻松享受到这个工具带来的遍历

image-20200323202346856

image-20200323202329590

如何使用

代码语言:javascript
复制
npm install -g shark-cleaner

shark

TODO

1.主流语言的缓存路径支持(包括但不限GoPythonJava等)

2.Node 缓存部分的完善(包括yarn、npm)

3.Electron客户端的支持

4.支持按照时间维护来推测清理(例如某个项目1个月未修改来识别需要清理缓存,提高识别垃圾的准确性。)

5.完善的错误提示(文件清理失败等)

6.logo设计

7.统计已经帮助用户清理的垃圾

8.清理历史记录,帮助用户能够快速下回删除的依赖包。

最后

该工具是我断断续续写了一周完成的,不免有许多Bug,如果使用过程有问题请以 Github Issues 方式提给我,我会尽量在第一时间进行介入。初衷是,希望它能成为一款专为程序员定制的清理垃圾工具。如果你知道语言缓存目录,请求 pr 或者 Issues 方式提给我。

感谢大家,如果觉得该工具对你起到了作用,请不要吝啬你的 star。(当然非常欢迎感兴趣的小伙伴来贡献代码呀) T T 你们的 star 是对我最大的鼓励,让我有足够的动力去不断维护它,迭代它,然后,让你们的开发环境变得更美好,更加整洁。

Github地址: https://github.com/hua1995116/shark-cleaner

关注

看完后有两件小事要拜托你

1.如果你觉得对你有帮助,请麻烦你点下右下角的在看。

2.欢迎加入交流群进行交流学习。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-03-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 秋风的笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 技术方案
    • 社区现状
      • 1.直接命令行
      • 2.命令行工具
    • 我的技术方案
    • 功能实现
      • 自定义目录扫描
        • 支持静态目录扫描
          • 支持详情查看
            • 支持多选
              • i18n支持
              • 如何使用
              • TODO
              • 最后
              相关产品与服务
              命令行工具
              腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档