美文网首页微前端
微前端乾坤+Angular8

微前端乾坤+Angular8

作者: 没有注定的结局 | 来源:发表于2020-02-25 12:06 被阅读0次

背景

微前端框架乾坤的DEMO中没有Angular例子,本人结合single-spa中Angular的相关教程,在乾坤中加入ng8。

项目地址

运行

cd main-project

yarn install:all

yarn start

访问 http://localhost:5100/

项目配置

主项目

参照main-project

子项目

1. angular项目配置

安装依赖包

ng add single-spa-angular

添加打包配置文件

在子项目修改extra-webpack.config.js配置文件

const webpackMerge = require('webpack-merge');

module.exports = (config, options) => {
  const singleSpaConfig = {
    output: {
      library: 'app-name',
      libraryTarget: 'umd'
    },
    externals: {
      'zone.js': 'Zone'
    }
  };
  const mergedConfig = webpackMerge.smart(config, singleSpaConfig);
  return mergedConfig;
};

注:app-name 需要改为子项目的名称

修改子项目main.single-spa.ts

改为如下代码

import { enableProdMode, NgZone } from '@angular/core';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { Router } from '@angular/router';
import { AppModule } from './app/app.module';
import { environment } from './environments/environment';
import singleSpaAngular from 'single-spa-angular';
import { singleSpaPropsSubject } from './single-spa/single-spa-props';

if (environment.production) {
  enableProdMode();
}

let bootstrap: any;
let mount: any;
let unmount: any;

if (!!(window as any).__POWERED_BY_QIANKUN__) {
  const lifecycles = singleSpaAngular({
    bootstrapFunction: singleSpaProps => {
      singleSpaPropsSubject.next(singleSpaProps);
      return platformBrowserDynamic().bootstrapModule(AppModule);
    },
    template: '<app-root />',
    Router,
    NgZone: NgZone,
  });

  bootstrap = lifecycles.bootstrap;
  mount = lifecycles.mount;
  unmount = lifecycles.unmount;
} else {
  platformBrowserDynamic().bootstrapModule(AppModule)
  .catch(err => console.error(err));
}

export { bootstrap, mount, unmount };

2. react项目配置

参照官方DEMO

3. vue 项目配置

参照官方DEMO

相关文章

  • 微前端乾坤+Angular8

    背景 微前端框架乾坤的DEMO中没有Angular例子,本人结合single-spa中Angular的相关教程,在...

  • 微前端乾坤+Angular9

    前言 之前写过一篇关于微前端乾坤+Angular8的笔记,现在NG9已经到来,因此做了一次升级,仅以此文记录。 安...

  • 微前端——乾坤

    背景 在使用Angular项目过程中,发现如下问题: 随着需求越来越多,模块越来越多,打包的时间越来越长,有的时候...

  • 微前端:了解下概念

    qiankun(乾坤) 微前端实践 可能是你见过最完善的微前端解决方案 实施微前端的六种方式 微前端-美团系列

  • 微前端——乾坤qiankun Demo

    微前端——qiankun(乾坤)实例 一、什么是微前端 微前端就是将不同的功能按照不同的维度拆分成多个子应用。通过...

  • angular 中对动态生成的html进行监听。

    环境 angular8 问题概述: 前端的html代码是后台数据返回的,前端用了 去解析,问题为对innerHtm...

  • 微前端 -- 乾坤(一)

    产生背景: 在 toB 的前端开发工作中,我们往往就会遇到如下困境: 工程越来越大,打包越来越慢 团队人员多,产品...

  • 微前端——qiankun(乾坤)实例

    一、什么是微前端 微前端就是将不同的功能按照不同的维度拆分成多个子应用。通过主应用来加载这些子应用。微前端的核心在...

  • 微前端 -- 乾坤(二)源码篇

    HTML Entry HTML Entry 是由 import-html-entry 库实现的,通过 http 请...

  • qiankun乾坤微前端爬坑

    一、主应用 1、引用乾坤 2、主节点不能和子应用相同 子应用的节点基本叫做app,主应用就不能叫做app,否则会出...

网友评论

    本文标题:微前端乾坤+Angular8

    本文链接:https://www.haomeiwen.com/subject/kazqvqtx.html