微前端打包构建
微前端项目的打包,是有一些需要注意的点
以webpack为例:
amd模块
在之前的文章,我们有提到我们的加载器,是基于System.js来做的.
所以我们微前端的模块最终打包,是要符合模块规范的.
我们使用的是amd模块规范来构建我们的模块.
指定基础路径
因为模块打包后,调用模块出口文件的,是模块加载器.
为了清晰的管理每个模块,并且正确的加载到我们每一个模块的资源,
我们给模块的资源都指定一个publicPath.
下面给出一个简单的 webpack 配置,这些配置我只是列出一些必要选项.
并不是一个完整的webpack配置,后续我会提供完整的微前端的Demo,提供大家参考
这些配置都是基于create-react-app的配置做的修改.
只要明白了配置的意图,明白我们打包出来的最终是一个什么样的包,
不管打包工具以后怎么变,技术栈怎么变,最后都是可以对接到微前端中来.
这里给出 project.json 的内容,便于后面的配置文件的阅读
// project.json |
|
部署
前端单页面的部署,不管怎么自动化,工具怎么变.
都是把打包好的静态文件,放到服务器的正确位置下.
微前端的部署,是一个应用聚合的过程,我们如何把一个个模块最后接入到一个完整的项目中的呢?
微前端应用完整目录
一般会放在一个nginx配置好的静态目录里,或者是其他web容器的一个静态目录.
看到这个目录结构,你应该能理解为什么要额外的配置 publicPath 了吧.
├── index.html // 首先浏览器会加载这个index.html,html里面会引入一个bootstrap.js的文件 |
配置自动化
我们每个模块都有上面所描述的配置文件,当我们的项目多个模块的时候,我们需要把所有模块的配置文件聚合起来.
我这里也有写一个脚本.
使用方法:
npm install micro-auto-config -g |
这样之后 project.config.js 就会自动生成,以及模块变动之后也会重新生成.
未完待续 …
相关文章
Demo
本文链接: alili.tech/archive/ffb…
转载请注明出处,欢迎转载哟