扯淡
也许很多人会觉得这是什么玩意儿,vue2时期压根都没听说过你!
确实如此。首次尝试开源,无所适从,不知道应该怎么做,或者怎么做是对的。只是搞了个东西,还真能用,就小范围推荐了一下,得到了一些好的反馈,收获了一些自然star,仅此而已。
背景
2017年末,公司开始了一个多方协作的项目,项目具有强烈的独立管理和责任划分的需求。社区寻找无果,我设计了一种支持分库开发、构建、部署,同时支持独立,合并运行的架构模式。当时的架构集成了包括UI框架,第三方库,公共方法在内的很多预设内容,是个大而全的设计。其实当时还未在社区听说过“微前端”这个表述,所以一直没有准确的表述。经过一年多的内部项目检验,此架构模式得到了可靠性验证结果,我把这些整理了一下,起名叫Admincraft。
历史
随着项目发展,admincraft凸显出了很多问题,约定死的布局层级,内置的第三方库,不够通用的内置方法导致架构非常不灵活,仅仅只能用于特定的中后台项目。思考再三,摘去了几乎所有应用层面的内容,只保留了模块加载核心能力,我发布了第一个支持vue2版本的微前端模块加载器:vue-module-loader v1.x 阅读文档。
因为只是加载器,所以它并非框架,定位是一个vue插件,用来加载符合约定设计模式的lib模块。
已经记不清当时是怎么推广的了,官网只留了一个qq群二维码,后来陆陆续续有一些朋友加入。
github仓库也慢慢有了一些star。
群里也有人顺利的用于生产项目,这一切的发展还是很令人兴奋的。
未来
Vue3稳定版已发布,群里也有一些朋友的希望能支持vue3,vue-module-loader到了该更新的时候了。
vue-module-loader v3.x阅读文档基于vite开发,vite的能力在此就不过多赘述了,你懂得。
和1.x的理念保持一致,vue-module-loader 只具有加载器能力,以vue3插件形式存在。同时,为了跟vue3开始使用Hook的风格保持一致,vue-module-loader 的API也以Hook形式提供,不再绑定vue组件实例。
使用
自动
-
安装命令行工具
npm install -g vue-module-creator # 或使用yarn yarn global add vue-module-creator -
创建工程
vml create -
跟随引导操作
手动
-
安装
yarn add vue-module-loader@next注意:务必使用 next 标签安装支持vue3的版本
-
使用
// main.js // 需要整体导入Vue3对象 import * as vue from "vue"; import vml from "vue-module-loader"; const app = vue.createApp({}); // 使用插件 app.use(vml, vue);安装后在任意 js 或 vue 文件中使用
import { useModule } from "vue-module-loader"; useModule( // 测试模块连接 "http://static.mengqinghe.com/vml/module/vue-module-module.iife.js" );
感兴趣的朋友可以进一步阅读详细文档
欢迎各位批评指正!