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

上手一个VSCode主机管理插件

时间:2023-04-03 15:06:59 Node.js

做web开发的同学应该不管前端后端都基本用过主机工具,用于管理各种环境下的主机配置如开发、测试和预生产。在这里分享一下我亲手制作的一款VSCode主机文件管理插件的相关内容。什么是HostHosts是一个没有扩展名的系统文件,可以用记事本等工具打开。它的作用是在一些常用的网站域名与其对应的IP地址之间建立一个关联“数据库”。登录URL时,系统会先自动从Hosts文件中查找对应的IP地址。一旦找到,系统会立即打开相应的网页。如果没有找到,系统会将URL提交给DNS域名解析服务器进行IP地址解析。Host管理工具开发测试过程中为什么需要切换不同的环境?如果没有好的管理工具,手动更新hosts文件效率低,维护困难。因此,在开发过程中拥有这样的工具,可以在一定程度上提高开发测试效率。主机管理工具需要哪些功能根据目前常用的主机管理工具,主要需要以下功能添加主机文件删除主机文件选择主机文件,同步修改到系统主机文件取消勾选主机文件,同步修改对系统host文件编辑Host文件,保存时同步到系统Host文件技术选择综合诉求分析其核心主要集中在文件操作,GUI交互只需要对文件进行简单的管理和编辑,VSCode完美满足了以上需求(实现简单、轻量级、跨平台),所以这里我们选择基于vscode自定义插件来实现主机管理功能。当然,如果你熟悉其他GUI技术,也可以通过windows系列、QT、electron+(vue|react|angular)等其他GUI库来实现这个功能。相对来说,插件的形式是最轻,开发成本也最少。实现描述功能预览下面是实现效果,让大家有个直观的感受。Explorer窗口底部是插件安装后的管理入口,实现了主要的增删改查、选择、取消选择等功能。项目目录文件说明除了vscode插件脚手架系统生成的文件外,新增的文件只有两个。_hostTreeDataProvider.ts_、_FileUtil.ts_。其中,hostTreeDataProvider.ts有两个功能,一个是管理和显示宿主文件目录树,另一个是接收和处理菜单命令。FileUtil.ts主要用于读写和操作主机相关文件。菜单命令的映射关系如下图所示。ahost插件在初始化的时候会判断用户目录下是否有.ahost文件夹。如果不存在,则创建该文件存放新添加的自定义主机。添加文件夹成功后,会将当前host文件的内容同步到该文件夹??,通过添加一个default.host文件来维护当前host。然后创建一个meta.json元信息文件,存放当前选择的主机配置文件名,用于同步主机内容。当主持人选择文件时,文件名将存储在元信息文件meta.json中。然后调用synchronization方法合并当前选中的所有host文件的内容,同步到系统host文件中。其他工作原理类似。主要代码的具体代码可以在Github上查看。Github仓库地址和插件地址也欢迎尝试。_extension.ts_ahostTreeDataProvider.ts项目地址该插件已经发布到VSCode插件市场,源码也已经提交到Github。因为主要集中在实现功能上,所以代码组织可能会比较乱。欢迎有兴趣的同学拍砖&PR,共同进步。插件地址https://marketplace.visualstudio.com/items?itemName=gamedilong.ahost只需要在vscode的插件窗口中搜索ahost安装即可。项目地址:https://github.com/gamedilong/ahost有兴趣的帮忙欢迎star?