react MPA 多页配置详解


Posted in Javascript onOctober 18, 2019

create-react-app 默认创建的是 SPA 应用,随着代码量的增加,build 后的 js 文件会越来越大。网上有很多拆分大的 js 文件的方案,但其实把 SPA 拆分成 MPA 也未尝不是一种解决方案。下面是 react 多页面配置过程,以备忘。

一、创建工程

create-react-app react-mpa

二、eject 配置文件

yarn eject

测试下 eject 是否正常yarn start

三、配置页面

① 修改 webpack entry

entry: {
   index:[
    isEnvDevelopment && require.resolve('react-dev-utils/webpackHotDevClient'),
    paths.appIndexJs,
   ].filter(Boolean)
  },

② 修改 webpack output

output: {
  filename: isEnvProduction
    ? 'static/js/[name].[contenthash:8].js'
    : isEnvDevelopment && 'static/js/[name].js',
}

③ 修改 HtmlWebpackPlugin

{
 inject: true,
 template: paths.appHtml,
 // 新增
 filename: 'index.html',
 chunks: ['index'],
}

测试下项目工程是否正常运行 yarn start

四、增加页面

1、新建页面所需文件

① 新建 html 页面
复制 public/index.html 为 public/index2.html

② 新建 js 文件
复制 src/index.js 为 src/index2.js
复制 src/App.js 为 src/App2.js

③ 增加文件引用(config/paths.js)

react MPA 多页配置详解

2、webpack 配置

① 增加 entry 配置

react MPA 多页配置详解

② 增加 HtmlWebpackPlugin 配置

react MPA 多页配置详解

运行工程
yarn start

测试页面
http://localhost:3000/index.html
http://localhost:3000/index2.html

仓库地址
https://github.com/lifefriend/react-mpa

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
比较详细的关于javascript中void(0)的具体含义解释
Aug 02 Javascript
理运用命名空间让js不产生冲突避免全局变量的泛滥
Jun 15 Javascript
使用jquery判断一个元素是否含有一个指定的类(class)实例
Feb 12 Javascript
详细讲解vue2+vuex+axios
May 27 Javascript
原生JS+Canvas实现五子棋游戏实例
Jun 19 Javascript
JavaScript门面模式详解
Oct 19 Javascript
微信小程序中的canvas 文字断行和省略号显示功能的处理方法
Nov 14 Javascript
JS使用iView的Dropdown实现一个右键菜单
May 06 Javascript
weui中的picker使用js进行动态绑定数据问题
Nov 06 Javascript
Vue中常用rules校验规则(实例代码)
Nov 14 Javascript
vue中的过滤器及其时间格式化问题
Apr 09 Javascript
Vue全家桶入门基础教程
May 14 Vue.js
vue滚动插件better-scroll使用详解
Oct 18 #Javascript
VUE实现密码验证与提示功能
Oct 18 #Javascript
VUE实现图片验证码功能
Nov 18 #Javascript
countUp.js实现数字滚动效果
Oct 18 #Javascript
Vue-cli3项目引入Typescript的实现方法
Oct 18 #Javascript
细述Javascript的加法运算符的具体使用
Oct 18 #Javascript
ElementUI之Message功能拓展详解
Oct 18 #Javascript
You might like
PHP环境搭建最新方法
2006/09/05 PHP
给初学PHP的5个入手程序
2006/11/23 PHP
PHP图片上传类带图片显示
2006/11/25 PHP
mysql5详细安装教程
2007/01/15 PHP
PHP将XML转数组过程详解
2013/11/13 PHP
php实现encode64编码类实例
2015/03/24 PHP
PHP开发制作一个简单的活动日程表Calendar
2016/06/20 PHP
Laravel框架实现修改登录和注册接口数据返回格式的方法
2018/08/17 PHP
由prototype_1.3.1进入javascript殿堂-类的初探
2006/11/06 Javascript
jquery监控数据是否变化(修正版)
2011/04/12 Javascript
javascript获取dom的下一个节点方法
2014/09/05 Javascript
jQuery源码解读之removeClass()方法分析
2015/02/20 Javascript
浅析BootStrap栅格系统
2016/06/07 Javascript
微信QQ的二维码登录原理js代码解析
2016/06/23 Javascript
概述javascript在Google IE中的调试技巧
2016/11/24 Javascript
详解javascript表单的Ajax提交插件的使用
2016/12/29 Javascript
jquery dialog获取焦点的方法
2017/02/09 Javascript
AngularJS实现的2048小游戏功能【附源码下载】
2018/01/03 Javascript
node.js中ws模块创建服务端和客户端,网页WebSocket客户端
2019/03/06 Javascript
layui实现数据表格点击搜索功能
2020/03/26 Javascript
vue实现数字滚动效果
2020/06/29 Javascript
vue-router之解决addRoutes使用遇到的坑
2020/07/19 Javascript
python实现按行切分文本文件的方法
2016/04/18 Python
windows系统下Python环境搭建教程
2017/03/28 Python
python实现QQ批量登录功能
2019/06/19 Python
python做反被爬保护的方法
2019/07/01 Python
python内存管理机制原理详解
2019/08/12 Python
python双端队列原理、实现与使用方法分析
2019/11/27 Python
Python中顺序表原理与实现方法详解
2019/12/03 Python
keras 权重保存和权重载入方式
2020/05/21 Python
Python 使用双重循环打印图形菱形操作
2020/08/09 Python
详解pandas赋值失败问题解决
2020/11/29 Python
Sisley法国希思黎中国官网:享誉全球的奢华植物美容品牌
2019/06/30 全球购物
平面设计的岗位职责
2013/11/08 职场文书
升学宴家长答谢词
2015/09/29 职场文书
Javascript 解构赋值详情
2021/11/17 Javascript