阅读本文需要较长的时间,本文介绍了微服务的概念、笔者心中的前端微服务,以及基于mess-cli脚手架,如何快速生成一个前端微服务架构项目
什么是微服务?
相信了解过spring cloud的同学都知道,什么是微服务。我的理解是:微服务就是为了解决单体架构的应用产生的臃肿问题而存在的。
单体应用为何存在臃肿问题。
- 项目体量过大,代码臃肿,修改一个小地方,或者改动只有三四行代码,打包却要半个小时以上。
- 容错性太小,就web方面来说,某一句代码出现报错,整个页面都被阻塞,无法继续渲染。
- 开发协作困难,一个大型应用,会存在几十个,上百个人同时开发,应用的模块划分很难做到不同模块互相解耦,不同模块的代码不存在交叉影响。
前端微服务
我所理解的前端微服务,是针对页面展现层次来讲的,一个应用肯定是会存在多个模块的,我们要将不同模块的前端代码独立出来,能够在应用模块的层面进行封装、注册、复用。
mess-cli: https://www.messcli.cn/
mess-cli是一个什么样的脚手架?
mess-cli
是一个前端微服务项目架构的脚手架,它可以为你生成中心服务、基于react的子模块、基于vue的子模块
(其他的前端开发框架还未集成进去,例如:angular、web component等)mess-cli
的灵感是来源于single-spa
和systemjs
,这里非常感谢这两个框架的开发者,让我对前端微服务有了新的想法,因此诞生了mess-cli
这个脚手架。
使用mess-cli
首先请确保安装了mess-cli
,运行npm install mess-cli -g
mess-cli
提供了三个命令
- mess init -- 初始化一个中心服务项目
- mess add -- 添加一个子模块
- mess bat -- 在windows系统上,生成运行、打包的bat文件
mess init
在命令行中执行mess init
,并输入项目名称,耐心等待项目生成完毕。(创建的时候会下载github上的项目模板,请确保你的网络能够正常使用git clone下载github上的项目,必要时可修改host文件、添加代理、科学上网等)
mess add
建议在中心服务项目的同级根目录运行mess add react routeControl from center
或者 mess add vue routeControl from center
,提供react、vue
项目的模板,项目名称为routeControl
,中心服务项目根目录文件夹名称叫center
我们也可以使用mess add react moduleA
,来创建一个模块A,如果创建命令不带from 核心服务名称
时,它将不会被注册进核心服务中,需要手动注册。
详情可参见mess-cli手动注册模块: https://www.messcli.cn//#/registerSubModule
mess bat
生成windows系统中,可执行bat文件,包含run.bat、build.bat,方便一键运行所有项目。~~~~
更多详情请参考网址 mess-cli: https://www.messcli.cn/
本文由博客群发一文多发等运营工具平台 OpenWrite 发布
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。