乐趣区

关于javascript:基于区块开发

欢送关注我的公众号 睿 Talk,获取我最新的文章:

一、前言

最早接触区块这一概念大略在 2 年前,过后在应用 Ant Design Pro 做后盾管理系统。只需敲几个命令,就能将整个模块,多个页面的代码注入到我的项目中的这一个性,过后真的被惊艳到了,基于区块开发这一概念也深深的映入我脑海当中。直到最近,我决定联合团队的现状,开发一套工具来推广基于区块开发这一概念。

二、区块仓库

基于区块开发的外围还是先得有个寄存区块的仓库,一是寄存区块源码,二是展示区块的成果。我选用 Storybook 作为展示的工具,具体成果如下:

我将区块分为 3 大类,别离是 多页面区块 页面 + 弹窗区块 单页面区块 多页面 是指列表、详情和新建页面都对应有各自的路由,都是独自的页面。而 页面 + 弹窗 是指详情和新建都是以弹窗的模式出现在列表页。单页面 则是更为根底的页面。每一个区块都把 UI 逻辑和业务逻辑封装在一起,通过 mock 数据来出现实在的成果。文件夹构造大体是这个样子:

区块的源码不是本文的重点,就不作过多的探讨了。

三、命令行工具

有了区块仓库后,下一步要思考如何将区块注入到我的项目当中了。最通用的做法就是做一个具备以下性能的命令行工具:

  • 列出可选的区块列表
  • 能够通过链接预览区块成果
  • 将选中的区块注入到我的项目中

先来看成果:

区块列表通过申请 api 来动静获取。抉择区块这里用了 Inquirer.js 和 terminal-link 这两个工具来展示。

选中区块后会让用户输出装置区块的目录,而后会进行如下几个步骤:

  • 拉取区块源码仓库
  • 将对应的区块拷贝到我的项目中
  • 应用 AST 批改相应的我的项目文件(非必须)
  • 删除本地区块源码仓库

第三步只有多页面区块须要,我的项目入口文件、路由文件和目录文件都要做出相应的批改。这么做的益处是不须要人为批改任何代码,就能马上看到区块插入后的成果,大大提高了用户体验。

四、VSCode 插件

有了命令行工具后,基于区块的概念曾经能够落地了,但用起来还不太不便,毕竟命令行工具没有 GUI 工具用起来不便。VSCode 是团队内大部分同学的开发工具,于是顺其自然的就应该开发相应的插件。插件的性能跟命令行工具是一样的:

  • 列出可选的区块列表
  • 能够预览区块成果
  • 将选中的区块注入到我的项目中

但用起来会不便得多,成果如下:

点击不同的区块,能够在右侧实时预览成果。

点击区块菜单的 + 号按钮,会提醒抉择插入文件夹:

后续插入区块代码的流程跟命令行工具是一样的。

这里用到 VSCode 插件开发的 2 个技术点,一个是 Tree View,另一个是 Webview。

还有另一种形式激活插件插入区块,就是通过我的项目目录的上下文菜单。

五、总结

本文介绍了基于区块开发的整套思路和配套的工具,也列了一些要害的技术点。更多的技术细节,将在后续的文章中具体介绍。

退出移动版