Ant Design Pro 前端项目初始化到部署上线
初始化
搭建方法随时可能更新,请注意查看最新官网相关文档
Ant Design Pro 是基于 Ant Design 和 umi 的封装的一整套企业级中后台前端/设计解决方案。
官网:pro.ant.design/zh-CN/docs/getting-started/
一些准备:
- 前端开发工具可以使用 vscode,或 WebStorm。
- yarn:安装 | Yarn 中文网 (nodejs.cn)。yarn 是并行的 npm。一句话:
npm install --global yarn
由于国内网络和前端的特殊性,在安装依赖等方面可能会失败或导致无法启动,浪费大量的时间,因此 Ant Design 推荐使用 tyarn - npm (npmjs.com) 及 cnpm - npm (npmjs.com) 工具。
主要搭建指令:
1 | npm i @ant-design/pro-cli -g # 全局安装 |
一个可能遇到的问题
/usr/local/lib/node_modules/@ant-design/pro-cli/src/create/generators/ant-design-pro/index.js:10
const sortPackage = require(‘sort-package-json’);
Error [ERR_REQUIRE_ESM]: require() of ES Module
解决方法:
进入 @ant-design/pro-cli
全局安装目录(一般在 C:\Users\yourname\AppData\Roaming\npm\node_modules\@ant-design\pro-cli
)中执行 npm i [email protected] -D
(如果初始化失败则 npm cache clean --force
)。
下载完成后终端输入:
1 | yarn # 如果可以的话,是 tyarn。如果还出错,再试试 cnpm install |
项目目录可看到生成好的依赖包:node_modules
注意:脚手架工具生成了项目后
- 不要改动任何代码,先保证项目能运行
- 确认环境是否匹配、安装项目依赖
1 | yarn run start # 你可以看看package.json里的script,以模拟数据的方式运行 |
注意使用 F12 及时看错误。
react 是对 js 的一层封装,而 umi 是对 react 的进一步封装。
【可选】Ant Design Pro 项目瘦身
项目瘦身过程中,每做一步就运行测试
移除国际化模块(国际化集成了多种语言,如无国际化需求可以删掉):npm run i18n-remove
。这个脚本将会尝试删除项目中所有的 i18n 代码,对于复杂的运行时代码,表现并不好,慎用。
然后自己手动删掉 /src/locales
文件夹。
一些解决方案:
- 移除国际化出现SyntaxError: Export ‘SelectLang’ is not defined. (11:55) · Issue #11143。把项目根目录下
src/components/index.js
中的SelectLang
变量删除后就行。 - 🐛 BUG执行删除国际化命令报错 · Issue #10452 · ant-design/ant-design-pro (github.com)
- 左侧导航栏不显示问题:移除国际化后,项目左侧导航栏菜单和右上角退出登陆按钮不显示了。解决方法:给
/config/route.ts
配置文件的每一个路由都加上对应的 name 属性,如果不添加 name 属性,则菜单默认展示的是 path 属性。这里一定要给每一个路由都添加对应的 name 属性,不然导航栏还是不显示。
其它文件的删除(不同版本下的操作略有不同):
- 移除测试工具:
/tests
- (在老版本中出现)移除 e2e(自动化测试):删除
src/e2e
文件夹 - (在老版本中出现)移出自动化测试框架
playwright.config.ts
- 移除默认页面时记得删掉路由
- 移除
/src/services/swagger
接口文档工具
【可选但不推荐】Umi UI 加速开发
目前不再推荐使用 Umi UI 组件
只有框架的 V3 版本支持悬浮的 Umi UI 按钮:
1 | npm i @ant-design/[email protected] -g |
旧版本脚手架:
1 | yarn add @umijs/preset-ui -D |
多环境
关键的环境变量:
1 | process.env.NODE_ENV |
构建
执行构建命令:
1 | npm run build |
构建生成的文件在文件夹 /dist
中。
部署
本地部署
serve 工具可以在本地启动一个静态文件服务器。如果你需要将网站部署到正式环境,可以使用 Vercel 进行部署。
安装 serve 工具:
1 | npm install serve -g # 全局安装 |
进入生成的文件夹 /dist
中,执行:
1 | /dist> serve |
Nginx 部署
Linux+Nginx
将文件夹 /dist
压缩成包 dist.zip
上传到服务器。
1 | # 解压文件 |
假设 myapp 文件夹目录位置为:/var/www/temp_test/myapp
。Nginx 配置文件的写法为:
1 | server{ |
上面是配置文件关键内容写法,端口号什么的自行补充。上面的配置可以使用 certbot 工具启用 HTTPS。详看:Linux 服务器 HTTPS 的配置。
重启 Nginx:
1 | systemctl restart nginx |
完成登录。
Docker 容器部署
项目源码中新建一个文件夹 docker
用于存放构建 Docker 需要的相关文件。
在文件夹 docker
中新建 nginx.conf
:
1 | server { |
项目源码根目录中新建 Dockerfile:
1 | FROM nginx |
Docker 构建:
1 | # 前端 |
Docker 运行:
1 | # 前端 |
那么服务器上的 nginx 增加以下配置,以将请求转发到 1122 端口。比如我的设置为,访问 projects.uuanqin.top
请求时将进行转发。
1 | server{ |
上面是配置文件关键内容写法,端口号什么的自行补充。上面的配置可以使用 certbot 工具启用 HTTPS。详看:Linux 服务器 HTTPS 的配置。
浏览器访问:projects.uuanqin.top
即可打开前端应用。
附 docker 常用命令:
1 | docker ps # 查看运行的镜像 |