1.0.2 • Published 4 years ago

create-mini-react-app v1.0.2

Weekly downloads
3
License
ISC
Repository
github
Last release
4 years ago

create-mini-react-app

使用webpack、babel搭建的轻量react开发脚手架

一键生成react + react-router + redux(dva) + axios + antd 高性能开发环境

使用

npx create-mini-react-app app
cd app
yarn
yarn dev

运行后,在浏览中打开 http://localhost:8080

项目结构

脚手架生成的目录如下,页面全部存放在pages中,webpack配置分为公共、开发、生产。

|-- Documents
    |-- .babelrc		
    |-- README.md
    |-- package.json
    |-- webpack.common.js         # webpack公用配置
    |-- webpack.dev.js            # webpack开发配置
    |-- webpack.prod.js           # webpack生产配置
    |-- dist                      # 项目打包生成目录
    |-- src
        |-- index.html
        |-- index.js              # 入口文件
        |-- Page                  # 页面
        |   |-- Admin
        |   |   |-- index.js
        |   |-- Home
        |       |-- index.js
        |-- imgs
        |   |-- logo.png
        |-- routes                 # 路由配置界面
        |   |-- renderRoutes.js
        |   |-- routes.js
        |-- style
        |   |-- index.css
        |   |-- index.less
        |-- utils
            |-- AsyncComponent.js   # 异步加载组件

基本功能

  • 解析css、less ,自动抽离css,自动添加浏览器前缀
  • 图片处理,生产环境下图片小于5kb转为base64格式
  • ES6及以上自动转码,并使用@babel/polyfill处理部分函数浏览器不兼容问题
  • 热加载
  • 集成react-router、dva、antd、axios并支持按需加载
  • 支持代理服务器,便于解决跨域问题

性能优化

  • 生产环境下css压缩,单独抽离css

  • react-router按需加载

  • babel-loader使用缓存

  • webpack使用externals或者splitChunks对较大的库进行分包。(根据不同的场景使用,使用externals可以借助cdn减小服务器带宽压力,默认使用splitChunks将react、react-router、axios等较大的库合并成一个包,提高性能)

  • 打包速度较慢时一键开启happypack多线程打包

    npm.io

    react-router按需加载,当点击Admin时才请求Admin相关文件

打包发布

yarn build

使用yarn build打包后dist目录会生成打包好的文件。

yarn analyze

使用yarn analyze分析打包生成的文件大小,便于性能调优

npm.io

将代码上传服务器之前记得关闭分析配置选项

 new BundleAnalyzerPlugin({
      analyzerMode: 'disabled',
      generateStatsFile: true,  // 发布到服务器之前设置为false,可删除dist目录下的分析文件
      statsOptions: { source: false },
    }),