记录-使用MicroApp并部署

1,973 阅读2分钟

前言

最近自己不算很忙,看到京东的微前端框架感觉挺有意思,就想自己写写试试,前端菜鸡,诸位大神勿喷。

官网地址:micro-app

基座应用

采用的vite+vue3来作为基座。按照官网例子走就是了,没有什么特别需要注意的地方。

参考:main-vite

子应用

采用的也是vite+vue3... 然而

1648364115(1).png

其实也没什么麻烦的,官网也提供了解决方案,子应用修改一下vite.config.js、容器id,基座关闭沙箱并使用内联script模式并处理下子应用的静态资源就ok了。

问我为什么都要用vite

81fb619ace007c8c82d29cc9b053fa6.jpg

ps:注意子应用的自定义插件,当时忘记写了,联系了官方的大佬,大佬很热心,最后我才发现是自己忘记写了。

运行

基座与子应用都是使用history路由,以上操作完毕就可以运行起来了,如果有报错的话,耐心参考文档与官网示例。

部署

整个小服务器,最低配的了,尝试了一下在服务器打包,卡死了wc。

眼看这么搞是不行的了,我只能把目光盯向了github。

src=http___c-ssl.duitang.com_uploads_item_202004_10_20200410075942_xpdct.thumb.400_0.gif&refer=http___c-ssl.duitang.gif

众所周知github有个东东叫github-pages,那么打包的事就麻烦您了。

你来打包,我拿来用,岂不美哉。

开搞开搞,配置不是很麻烦,掘金也有很多教程,随便搞搞就成了。

打完了包接下来就是怎么搞到服务器上,整点简单的吧,就装个jenkins把。

jenkins安装教程也太多了,我借鉴的文章找不到了,可能那位大佬删除了文章。

安装完毕就新建一个任务

1648367557(1).png

填写一下项目相关信息

1648367636(1).png

分支可以改成*/gh-pages

1648367808(1).png

在整个触发器

1648367859(1).png

构建环境随便勾选一下就可以了

1648368020(1).png

以上基本设置完毕,还需要配置一下webhook。

参考: webhook

接下来还需配置一下nginx。

我的配置:

nginx目录:

nginx            # 根目录
├── conf         # 配置文件
├── html         # 基座应用
├── micro-vue    # 子应用
└── ...

基座:

server {
    listen 80;
    server_name localhost;

    location / {
        root html;
        index index.html index.htm;
        add_header Access-Control-Allow-Origin *;
        if ( $request_uri ~* ^.+.(js|css|jpg|png|gif|tif|dpg|jpeg|eot|svg|ttf|woff|json|mp4|rmvb|rm|wmv|avi|3gp)$ ){
        add_header Cache-Control max-age=7776000;
        add_header Access-Control-Allow-Origin *;
        }
    }
    
    location /base/ {
        root html;
        index index.html index.htm;
        add_header Access-Control-Allow-Origin *;
        if ( $request_uri ~* ^.+.(js|css|jpg|png|gif|tif|dpg|jpeg|eot|svg|ttf|woff|json|mp4|rmvb|rm|wmv|avi|3gp)$ ){
        add_header Cache-Control max-age=7776000;
        add_header Access-Control-Allow-Origin *;
        }
        try_files $uri $uri/ /index.html;
    }
}

子项目

server {
    listen 8081;
    
    location / {
    root micro-vue;
    add_header Access-Control-Allow-Origin *;
    if ( $request_uri ~* ^.+.(js|css|jpg|png|gif|tif|dpg|jpeg|eot|svg|ttf|woff|json|mp5|rmvb|rm|wmv|avi|3gp)$ ){\
    add_header Cache-Control max-age=7776000;
    add_header Access-Control-Allow-Origin *;
    }
    index index.html index.htm;
    }
    
    location /base/chat/ {
    root micro-vue;
    add_header Access-Control-Allow-Origin *;
    if ( $request_uri ~* ^.+.(js|css|jpg|png|gif|tif|dpg|jpeg|eot|svg|ttf|woff|json|mp4|rmvb|rm|wmv|avi|3gp)$ ){
    add_header Cache-Control max-age=7776000;
    add_header Access-Control-Allow-Origin *;
    }
    try_files $uri $uri/ /index.html;
    }
}

以上配置仅供参考,请按个人实际情况而定,整个流程结束。

  • 提交github代码
  • 执行workflow,github进行打包
  • 打包完毕触发webhook
  • jenkins开始拉取打包后代码
  • 拉取完毕执行构建后操作,将代码部署至nginx
  • 即可访问部署后代码

结语

坑不多,配置起来挺简单,值得一试。