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

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 的文件。

第一种方法可以实现。

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

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

10577 次点击
所在节点    程序员
80 条回复
LeungJZ
2018-03-13 11:34:26 +08:00
@williamx
没有上传权限,只用 git 好像也可以。
hxtheone
2018-03-13 11:36:27 +08:00
第二种方案感觉已经有 CI 的雏形了, 剩下的就是把这些活儿放到一个持续集成的环境(比如 Jenkins)里, 一套脚本 pipeline 全搞定, 美滋滋
hasbug
2018-03-13 11:37:12 +08:00
关注学习
wbf5431005
2018-03-13 11:38:58 +08:00
感觉我连半吊子前端都不算了,只会写 div+css
chooin
2018-03-13 11:43:14 +08:00
https://github.com/Hema-FE/cdn-cli 直接发布到 cdn 呀
LeungJZ
2018-03-13 11:46:13 +08:00
@zenxds
那你们有没有在钩子中执行 shell ?
wengjin456123
2018-03-13 11:46:36 +08:00
mark
LeungJZ
2018-03-13 11:47:04 +08:00
@chooin
公司暂无 cdn。走服务器。
nowcoder
2018-03-13 11:49:52 +08:00
自己写了一个脚本,拉文件,合并压缩,改版本号,上传阿里云 oss 一键搞定。
williamx
2018-03-13 11:56:48 +08:00
@LeungJZ #21 git 是自动的?
LeungJZ
2018-03-13 11:59:27 +08:00
@williamx
git 只要配置完就可以了呀。
huangzxx
2018-03-13 12:00:48 +08:00
gitlab-ci
mrcotter2013
2018-03-13 12:18:55 +08:00
前阵子开始使用 Travis CI 自动部署我的 Blog 和另一个网站。Blog 在 GitHub Pages 上,配置很简单,源码在 raw 分支,生成的静态文件在 master ;另一个网站最后使用 rsync 同步数据,需要先配置好 SSH key。现在很方便,只要 push 到 repo,Travis CI 就会自动开始 build 和 deploy。
codespots
2018-03-13 12:19:20 +08:00
jenkins
MinonHeart
2018-03-13 12:23:43 +08:00
知乎第一条
zenxds
2018-03-13 12:47:19 +08:00
@LeungJZ 肯定执行了,一些目录切换、git 操作、解压、文件拷贝等
zthxxx
2018-03-13 12:56:37 +08:00
大公司里怎样开发和部署前端代码 - 张云龙
https://www.zhihu.com/question/20790576/answer/32602154
LeungJZ
2018-03-13 13:01:58 +08:00
@huangzxx
那个 runner 哪来?还是说自己搭建 gitlab ?
huangzxx
2018-03-13 13:04:00 +08:00
@LeungJZ
自建 gitlab 呀,你的第一,第二是方法 gitlab-ci 都可以搞定。
beginor
2018-03-13 14:01:03 +08:00
打包在 docker 里面

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

https://www.v2ex.com/t/437489

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

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

© 2021 V2EX