保姆级搭建qiankun教程 ==> hello world级别搭建,不包含应用间通信之类的

本文经过本人按照qiankun文档==>项目实践书写,主要记录一下在搭建过程中遇到的问题

  • 因为react-scripts 高于版本4所造成的npm i -D @rescripts/cli安装失败

解决办法

将react-scripts版本降到2~4之间

  • 微应用中使用了eslint导致微应用报错问题

解决办法

在package.json文件中进行以下配置

"eslintConfig": {   ...,"globals": {"__webpack_public_path__": true}   },

第一步 ==> 搭建主应用

我是采用的React应用
1.新建React项目

npx create-react-app main_app

2.主应用添加qiankun依赖

$ yarn add qiankun # or npm i qiankun -S

3.主应用中注册微应用

import { registerMicroApps, start } from 'qiankun';registerMicroApps([{name: 'react app', // app name registeredentry: '//localhost:7100',container: '#yourContainer',activeRule: '/yourActiveRule',},{name: 'vue app',entry: { scripts: ['//localhost:7100/main.js'] },container: '#yourContainer2',activeRule: '/yourActiveRule2',},
]);start();

如果不知道该怎么下手可以像我这样写在App.js里面

import { BrowserRouter as Router, Link } from 'react-router-dom';
import { registerMicroApps, start } from 'qiankun';
import './App.css';function App() {let style = {width: '100vw',height: '100vh',}return (<div className="App"><h1>主应用启动成功</h1><Router><Link to='/app-react'><button>显示React微应用1</button></Link><Link to='/app-react2'><button>显示React微应用2</button></Link></Router><div id='container' style={style}></div></div>);
}registerMicroApps([{name: 'app_1',entry: '//localhost:3001',container: '#container',activeRule: '/app-react',},{name: 'app_2',entry: '//localhost:3002',container: '#container',activeRule: '/app-react2',},
])
start();export default App;

到这里主应用就构建好了

第二步 ==> 构建微应用

我依然是采用的React项目
1.新建React项目 ==> 不再赘述命令。。
2.在 src 目录新增 public-path.js:

if (window.__POWERED_BY_QIANKUN__) {__webpack_public_path__ = window.__INJECTED_PUBLIC_PATH_BY_QIANKUN__;
}

3.入口文件 index.js 修改,为了避免根 id #root 与其他的 DOM 冲突,需要限制查找范围

import './public-path';
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';function render(props) {const { container } = props;ReactDOM.render(<App />, container ? container.querySelector('#root') : document.querySelector('#root'));
}if (!window.__POWERED_BY_QIANKUN__) {render({});
}export async function bootstrap() {console.log('[react16] react app bootstraped');
}export async function mount(props) {console.log('[react16] props from main framework', props);render(props);
}export async function unmount(props) {const { container } = props;ReactDOM.unmountComponentAtNode(container ? container.querySelector('#root') : document.querySelector('#root'));
}

4.修改 webpack 配置

安装插件 @rescripts/cli

npm i -D @rescripts/cli

这里载安装依赖的时候可能会报错react-scripts这个依赖版本过高导致安装失败,只需要把这个依赖降低到2-4之间就可以了。

根目录新增 .rescriptsrc.js:

const { name } = require('./package');module.exports = {webpack: (config) => {config.output.library = `${name}-[name]`;config.output.libraryTarget = 'umd';config.output.jsonpFunction = `webpackJsonp_${name}`;config.output.globalObject = 'window';return config;},devServer: (_) => {const config = _;config.headers = {'Access-Control-Allow-Origin': '*',};config.historyApiFallback = true;config.hot = false;config.watchContentBase = false;config.liveReload = false;return config;},
};

修改 package.json:

   "start": "rescripts start","build": "rescripts build","test": "rescripts test",

如果微应用中使用了eslint还需要进行以下配置

"eslintConfig": {...,"globals": {"__webpack_public_path__": true}},

到此就搭建完成了,使用的时候只需要配置相应的路由即可。

微应用 qiankun 项目搭建相关推荐

  1. qiankun 传统项目配置_微前端 qiankun 项目实践

    原标题:微前端 qiankun 项目实践 作者:zxh1307 https://juejin.im/post/5ea55417e51d4546e347fda9 导语 最近在做微前端的项目 , 过程中真 ...

  2. 微前端qiankun从搭建到部署的实践

    最近负责的新项目用到了qiankun,写篇文章分享下实战中遇到的一些问题和思考. 示例代码: github.com/fengxianqi/-. 在线demo:qiankun.fengxianqi.co ...

  3. py获取前端的参数_微前端 qiankun 项目实践

    (给前端大全加星标,提升前端技能) 作者:zxh1307 https://juejin.im/post/5ea55417e51d4546e347fda9 导语 最近在做微前端的项目 , 过程中真是踩了 ...

  4. 微前端vue项目实战 -- 乾坤qiankun框架 (一)

    背景: 公司研发的项目主要是 GIS地图为基础的管理系统,由主体项目(管理业务模块)+ GIS地图应用,由于 GIS地图应用模块 会在多个地方使用,所以单独构建一个项目,分别在不同的业务场景中引用.交 ...

  5. 乾坤qiankun框架搭建项目

    主应用 vue2项目搭建 第一步.创建vue2的项目与正常创建无异,在这里不做过多描述: 第二部.将创建好的vue2项目作为主应用,在根目录先安装qiankung yarn add qiankun # ...

  6. vue简易微前端项目搭建(一):项目背景及简介

    github传送门: 1.h5主项目 2.项目脚手架 3.子项目模板 系列文章传送门: vue简易微前端项目搭建(一):项目背景及简介 vue简易微前端项目搭建(二):子项目模板及项目脚手架搭建 vu ...

  7. vue简易微前端项目搭建(二):子项目模板及项目脚手架搭建

    github传送门: 1.h5主项目 2.项目脚手架 3.子项目模板 系列文章传送门: vue简易微前端项目搭建(一):项目背景及简介 vue简易微前端项目搭建(二):子项目模板及项目脚手架搭建 vu ...

  8. Spring Cloud Hoxton 版本微服务项目搭建 admin 监控客户端

    Spring Cloud Hoxton 版本微服务项目搭建 admin 监控客户端 前言 在上一篇文章博主已经讲解了admin 管理中心服务项目如何创建,不会的话可以前往学习,传送门:Spring C ...

  9. 为你的项目搭建sentry并且通过企微推送

    介绍 sentry是一个开源的监控系统,能支持服务端与客户端的监控,还有个强大的后台错误分析.报警平台. 本篇文章主要介绍 搭建sentry.使用sentry.接入企业微信推送 - 更多学习案例尽在我 ...

最新文章

  1. 【转】如何使用VS 2013发布一个可以在Windows XP中独立运行的可执行文件
  2. golang中的strings.Trim
  3. 048_CSS3用户界面
  4. NGINX Plus 提供的在线活动监控功能
  5. 自然语言理解难在哪儿?
  6. c语言汽水瓶换汽水的编程题,c语言:2种方法编程及优化;喝汽水问题
  7. arm优化编译参数选项解释
  8. java中字典算法_Java字典生成算法讲解
  9. C++类和对象的概念
  10. 4-2 父子组件的数据传递
  11. 解决Tomcat version 7.0 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5 and 6 Web modules
  12. java前端 js弹出框_前端js弹出框组件使用方法
  13. sql server 中某个字段值合并【转】
  14. Delphi 2010手动安装indy10.5.7
  15. 施工日志管理软件app_庄典iPad建筑装修报表管理系统施工报表制作流程
  16. pascal语言入门
  17. 什么是DIMM插槽?
  18. PLsql oracle 误删除 恢复
  19. PID控制器、试凑法整定
  20. 从零开始搭建环境安装FCOS(Ubuntu18.04)

热门文章

  1. word2010添加论文引用
  2. php redis incr过期时间,Redis 利用 incr 和 expire 来限流, 并发导致过期时间失效问题...
  3. 计算机考研11408总分418上岸攻略
  4. HR/FR/EFR/AMR
  5. uniapp vue百度人脸实名认证(V4)接口
  6. php 无限子站cms,PHP整理CMS无限层级目录(毗邻目录模式)
  7. 猿创征文|聊一聊我在字节跳动做项目质量改进的经验
  8. Apache Kylin使用总结
  9. 第一卷清晨的帝国 第一百四十三章 辩难始
  10. 母牛的故事——无脑模拟解法