如何优雅的打包前端代码 #2948
limingxinleo
started this conversation in
Show and tell
如何优雅的打包前端代码
#2948
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
作为
Hyperf框架作者之一,强烈安利大家使用Docker,现在Docker集群技术已经十分成熟,K8s强势领跑,深受一线企业的厚爱,而Swarm使用简单,绝对是中小型企业的首选。但今天,并不是讲
Hyperf在Docker中的应用,而是前端如何在Docker中进行打包,并与Hyperf进行通信。打包
我们下面以
VUE为例。这里提供一个仓库 vue-docker-demo,供大家测试。首先我们使用
vue脚手架初始化一个项目。接下来我们初始化 Hyperf 项目,这里为了方便讲解,后端项目也一同上传到这一个仓库中。
修改 Hyperf 项目,方便测试
新建
UserController控制器添加路由
添加单元测试
跑一下接口测试
改造 VUE 项目
使用
NPM安装axios添加 request.js
修改
HelloWorld.vue,以下只展示修改后的部分添加 Dockerfile 和 app.conf
首先,当
nginx拿到/api前缀后,转发到对应的后端服务,所以这里需要提供一份app.conf配置接下来是我们的
Dockerfile,逻辑其实很简单,我们先通过node环境进行打包,然后再copy到nginx环境下即可。打包测试
首先进入我们
Hyperf目录,打包后端服务然后打包我们的前端代码
创建网关,如果已经创建过,可以忽略这里,并使用创建过的网关
接下来,让我们把两个项目都跑起来
然后通过浏览器访问
http://127.0.0.1:8080/就可以看到我们的测试结果在终端中输出了。
发布
项目发布这里就不再赘述了,需要了解的就去看一下
DockerSwarm集群搭建,有全自动的打包发布方案,教程就在Hyperf官方文档中。这里需要额外提一下的是,打包好的静态文件,每次都走服务器公网流量是很浪费的,这里推荐大家使用
CDN,然后配一个回源,可以大大减少流量的压力。当然,回源策略那里要注意一下,把接口返回的数据也缓存到CDN上就不好了。Beta Was this translation helpful? Give feedback.
All reactions