你们公司的前端代码如何部署的?

2018-03-13 09:52:22 +08:00
 LeungJZ

前提:

  1. 纯前端,不涉及后端框架(如 TP,laravel 等)。

  2. 单独一个域名,nginx 会解析目录。

  3. 服务器配置貌似是 4C8G 还是 8C16G 的。

要求:

  1. 不用 ftp 上传,不用 scp 传输

  2. 开发文件在 src 目录下,打包文件在 dist 目录下,可参考 vue。

我现在个人能想到的方法有:

  1. 用 githook 去实现 在服务器中新建一个空仓库,开发完成后,push 到服务器的仓库中,然后自动拉取,打包。

  2. 用 gitlab 的 webhook 实现 在 gitlab 的项目中新建一个 deploy 分支,开发完后打包文件,将打包好的文件 push 到 deploy 分支中,通过 webhook 去触发服务器中某个脚本,脚本 reset --hard 去拉取 deploy 的文件。

第一种方法可以实现。

第二种方法不知道可行不可行。

不知道大家有没有其他更好的方法?

10917 次点击
所在节点    程序员
80 条回复
wangxiaoaer
2018-03-13 14:04:13 +08:00
@LeungJZ 对,服务器打包防止运行环境导致的编问题。
LeungJZ
2018-03-13 14:04:34 +08:00
@huangzxx gitlab 配置略麻烦了,而且公司不一定会用。
lemonlwz
2018-03-13 14:11:27 +08:00
推荐 gitlab ci
mars0prince
2018-03-13 14:13:53 +08:00
后端用啥你就用啥啊,我不信你们后端部署不用 jenkins 之流的 CI 的
guomuzz
2018-03-13 14:16:23 +08:00
2 你可以 node 起个服务 每次更新的话 手动触发 node node 调用服务器脚本执行 git pull
跟你的 2 原理一样只是触发方式不一样
OMGZui
2018-03-13 14:17:42 +08:00
Leleoleon
2018-03-13 14:32:40 +08:00
Jenkins
LeungJZ
2018-03-13 14:35:04 +08:00
@mars0prince
抱歉了,真没用。


@lemonlwz
这个可能有点繁琐吧。
LeungJZ
2018-03-13 14:36:02 +08:00
@OMGZui
看起不错,但是只支持 github 就尴尬了。公司的项目并不是开源的啊。
notedown
2018-03-13 14:45:34 +08:00
首先是解决前端缓存的问题.后缀+版本号 接口返回
然后 cdn 加速
然后统一打包成一个文件.
能编写 200kb 左右的 vue 就很多页面了 +cdn 压缩基本很少了. 4g 无压力
etc
2018-03-13 14:46:30 +08:00
Jenkins 每 10 分钟监控一次 svn 路径,有文件更新就触发服务器上的脚本拉代码。
youyoumarco
2018-03-13 15:12:22 +08:00
jenkins 调用服务器脚本 实现
AntonChen
2018-03-13 15:38:15 +08:00
git tag 拉到临时目录,rsync 排除配置文件和 .git
ytmsdy
2018-03-13 16:14:05 +08:00
fabric
bhaltair
2018-03-13 16:17:56 +08:00
前端打好 tag 运维拉代码 部署到 nginx 服务器上
bhaltair
2018-03-13 16:19:40 +08:00
自己的项目 写个 deploy shell 脚本 rsync 直接把 dits/推到服务器上
youxiachai
2018-03-13 16:48:14 +08:00
@LeungJZ ....楼上科普了那么多 ci..这个只是让你知道 ci 是怎么工作而已..你还真用这个...

用心找一下..自然知道有啥开源 ci 了..
youEclipse
2018-03-13 16:58:22 +08:00
jenkins/gitlab CI + Docker;

Docker 内部有一个 nginx,一个前端项目一个 container。
guyskk0x0
2018-03-13 17:08:03 +08:00
Drone CI 了解一下: https://github.com/ncuhome/getdrone
LeungJZ
2018-03-13 17:16:31 +08:00
@youxiachai 好吧。现在可能不用 CI 而用第二种方法。


@bhaltair 现在可能用第二种方法。而且,暂时没有运维。之前都是用 svn 打包上传的,访问时通过 TP 路由访问。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/437489

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX