一、概述

原文地址:https://pro.ant.design/docs/deploy-cn

二、详细

2.1、构建

当项目开发完毕,只需要运行一行命令就可以打包你的应用:

npm run build

由于 Ant Design Pro 底层使用的 roadhog 工具,已经将复杂的流程封装完毕,对于大部分场景,构建打包文件只需要一个命令 roadhog build,构建打包成功之后,会在根目录生成 dist 文件夹,里面就是构建打包好的文件,通常是 ***.js***.cssindex.html 等静态文件。

不过你如果需要自定义构建,比如指定 dist 目录等,则需要通过 .webpackrc 进行配置,详情参看:roadhog 配置。

2.1.1、环境变量

当你需要区别开发和部署以及测试环境的时候,可以通过在 .webpackrc 中设置 env 环境变量来实现。

"env": {// 开发环境"development": {"extraBabelPlugins": ["dva-hmr",]},// build 时的生产环境"production": {"extraBabelPlugins": ["transform-runtime","transform-decorators-legacy",["import", { "libraryName": "antd", "style": true }]]}
},

2.1.2、分析构建文件体积

如果你的构建文件很大,你可以通过 analyze 命令构建并分析依赖模块的体积分布,从而优化你的代码。

npm run analyze

然后打开 dist/stats.html 查看体积分布数据。

2.2、发布

对于发布来讲,只需要将最终生成的静态文件,也就是通常情况下 dist 文件夹的静态文件发布到你的 cdn 或者静态服务器即可,需要注意的是其中的 index.html 通常会是你后台服务的入口页面,在确定了 js 和 css 的静态之后可能需要改变页面的引入路径。

2.2.1、代码分割和动态加载

0.3.0 版本之后,我们支持了代码分割和动态加载,只有进入对应路由后才会加载相应的代码,避免首屏加载过多不必要的 JS 文件,提高大规模前端应用研发的扩展性。

├── 0.async.js
├── 1.async.js
├── 10.async.js
├── 11.async.js
├── 12.async.js
├── 13.async.js
├── 14.async.js...

注意:如果开启了 hash,会变成 0.2df975b2.async.js 的形式,修改代码后 hash 会变化,可以避免前端缓存问题。

这种方式对于部署有一定的要求,你可以将 dist 整体部署到你的后端应用的静态资源目录下(通常为 static 或者 public),这样默认的静态资源引用路径直接指向应用的根目录 //your.application.domain/***.js和 //your.application.domain/***.css

如果你的静态资源域名和应用域名不同(例如独立的 cdn 地址),你需要在 .webpackrc 文件里用 publicPath 对生产环境的静态路径进行配置。可以参考 create-react-app 的部署文档

{"publicPath": "https://cdn.com/your_app"
}

Ant Design Pro 1.0 版本后我们 .webpackrc 里使用了 "disableDynamicImport": true 默认关掉了动态加载(roadhog@2.x 支持),回退为单文件 index.js 和 index.css 的构建方式。如果需要动态加载删掉这个配置即可。

2.2.2、前端路由与服务端的结合

  Ant Design Pro 中,前端路由使用的是 React Router,所以你可以选择两种路由方式:browserHistory 和 hashHistory

  hashHistory 使用如 https://cdn.com/#/users/123 这样的 URL,取井号后面的字符作为路径。browserHistory 则直接使用 https://cdn.com/users/123 这样的 URL。使用 hashHistory 时浏览器访问到的始终都是根目录下 index.html。使用 browserHistory 则需要服务器做好处理 URL 的准备,处理应用启动最初的 / 这样的请求应该没问题,但当用户来回跳转并在 /users/123 刷新时,服务器就会收到来自 /users/123 的请求,这时你需要配置服务器能处理这个 URL 返回正确的 index.html。如果你能控制服务端,我们推荐使用 browserHistory

express 的例子

app.use(express.static(path.join(__dirname, 'build')));app.get('/*', function (req, res) {res.sendFile(path.join(__dirname, 'build', 'index.html'));
});

egg 的例子

// controller
exports.index = function* () {yield this.render('App.jsx', {context: {user: this.session.user,},});
};// router
app.get('home', '/*', 'home.index');

2.2.3、在 Ant Design Pro 中使用前端路由

路由包含的信息在 router.js 中,不过关于 history 的配置是在 index.js 入口文件中,传入配置信息给 dva 构造器即可。

由于使用了 react-router@4,所以引入 browserHistory 与原本 dva 的方式相比有所改变。

import dva from 'dva';
// 引入 browserHistory
import browserHistory from 'history/createBrowserHistory'
import models from './models';import './index.less';// use browserHistory
const app = dva({history: browserHistory(),
});// default hashHistroy
const app = dva();

关于路由更多可以参看 React Router 。 关于 react-router@4 更多可以参看 All About React Router 4 。

转载于:https://www.cnblogs.com/crazycode2/p/10073232.html

ant design pro (八)构建和发布相关推荐

  1. 使用ant design Pro开发项目的小结

    一.关于上手. 1. 关于ant design Pro的介绍,自己看官网,大致上可以理解为ant design(组件库) ant design Pro (完整的项目) dva(路由 数据流管理)的组合 ...

  2. 漂亮的实力派 Ant Design Pro 2.0 正式发布

    1.0 发布之后,Ant Design Pro 受到了业界广泛关注和使用,GitHub 上 star 数一路增长到 11,686 个,在蚂蚁金服内部也落地数百个中后台应用. 在这 8 个月内,2.0 ...

  3. 为什么我选择Ant Design Pro脚手架

    为什么我选择Ant Design Pro脚手架 首先先来谈谈Ant Design Pro脚手架好处: 初始化操作简单! 启动脚手架方便! 任何一种语言和框架,满足以上两点,肯定会得到很好的推广(比较大 ...

  4. ant design pro模板_Ant Design Pro 学习笔记

    学习笔记 摘要介绍 Ant Design Pro 是一个基于Ant Design搭建起来的模板项目.它提供了两个主要布局:BasicLayout.UserLayout,在布局基础上制作了20多个基础页 ...

  5. springboot拦截请求路径_SpringBoot整合Ant Design Pro进行部署

    一.Ant Design Pro 打包 1.1 运行 build打包 $ npm run build 1.2 将打包生成的静态文件拷贝到spring boot 项目中 构建打包成功之后,会在根目录生成 ...

  6. Ant Design Pro入门之部署安装

    部署安装 下载地址:https://github.com/ant-design/ant-design-pro 我们使用资料中提供的,已经下载好的文件:ant-design-pro-master.zip ...

  7. Ant Design Pro v4 is Here

    Ant Design Pro v4 is Here 距离 Pro 的上个版本发布已经过去了 8 个月,Pro 也进行了许多的迭代,但是大部分更新仍然以修复 bug 为主.在此期间我们遇到了许多使用 P ...

  8. ant design pro模板_ant design pro 当中改变ant design 组件的样式和 数据管理

    ant design pro 简介 官网简介 Ant Design Pro 是一个企业级中后台前端/设计解决方案,我们秉承 Ant Design 的设计价值观,致力于在设计规范和基础组件的基础上,继续 ...

  9. Ant Design Pro -- 02项目结构@20210331

    一.项目的目录结构 ├── config # umi 配置,包含路由,构建等配置 ├── docker # 部署 ├── functions # ├── mock # 本地模拟数据 ├── publi ...

最新文章

  1. SAP MM公司间STO里的一步法转库?
  2. windows下磁盘IO性能数据评测
  3. kali linux 2.0 web 渗透测试 电子书
  4. 纯MASM32打造BootClos——查看、备份系统开关机记录(0.0.0001 beta1,9KB)
  5. BeyondCompare3提示许可密钥过期完美解决方法:3281-0350
  6. 社保必须交满15年才能享受吗?
  7. fedro1 16 64位安装oracle 11.2.0.1遇到的问题
  8. python django步骤_python - django (ORM使用步骤)
  9. junit单元测试详解
  10. 数据新闻周报:阿尔法狗将挑战德州扑克
  11. jquery html dom方式创建新html元素
  12. 前端项目总结与分享(PPT整理)
  13. java累积度分布,累积分布函数
  14. 网络出版服务许可证 你了解吗?
  15. 在HTML中可以链接Word文档吗,为Word文档添加超文本链接就是这么简单!
  16. 求解字谜游戏问题-数据结构与算法分析-C语言描述 Mark Allen Weiss-第一章练习题
  17. 采用计算机对酒店客房进行管理,酒店客房管理系统—计算机毕业设计论文.doc...
  18. Ouroboros for Mac(AE路径生长MG动画脚本)
  19. windows下bat脚本实现定时删除指定文件夹下的文件和文件夹
  20. Flink 去除重复数据 重复数据处理

热门文章

  1. GIS+=地理信息+云计算技术——Spark集群部署
  2. [android]am自动化测试框架(原创)
  3. POJO、VO、PO、FormBean区别:
  4. RSA签名的PSS模式
  5. iOS11、iPhone X、Xcode9 适配指南
  6. 四川大学线下编程比赛第一题:数字填充
  7. HTML5存储学习笔记(一)
  8. 一个经典例子让你彻彻底底理解java回调机制
  9. koa源码分析-co模块以及thunk
  10. inline-block在ie6中的经典bug