请教下 vue 项目的部署流程

2019-04-20 09:36:01 +08:00
 sufaith

目前我是构建后,把 dist 文件 scp 上传到服务器,然后交给 nginx 托管, 全程手动操作, 做法像小作坊式的, 不知道大厂是如何操作的,请有相关经验的大佬给介绍下

7171 次点击
所在节点    程序员
33 条回复
justin2018
2019-04-20 16:47:18 +08:00
@avenger 收藏了 这个不错 😁
jhsea3do
2019-04-20 17:17:14 +08:00
@nekoleamo

pm2 做后台进程的托管,类似 supervisord 或者 systemd, 但是 vue 打包应该和这个无关,只是 ci / repository 这块
zhouhui
2019-04-20 18:34:27 +08:00
自己写一段?
deploy.sh
```
#!/bin/sh

echo "开始编译...."
npm run build
echo "开始压缩..."
cd dist && zip -r dist.zip *
echo "开始上传..."
scp dist.zip prod@0.0.0.0:/opt/deploy/XXX
cd ..
scp run.sh prod@0.0.0.0:/opt/deploy/XXX
echo "开始删除编译代码..."
rm -rf dist/
echo "准备更新生产代码..."
ssh prod@00.00.00.00 sh /opt/deploy/XXX/run.sh
echo "发布成功..."
```
run.sh
```
#!/bin/sh

base=/opt/deploy/XXX
echo "删除多的文件..."
rm -rf $base/css $base/dis $base/img $base/index.html $base/js $base/static
echo "解压线上代码..."
rm -rf $base/dist
unzip $base/dist.zip -d $base
echo "删除多余的文件..."
rm -rf $base/dist.zip $base/run.sh
echo "发布成功..."
```
zhouhui
2019-04-20 18:35:57 +08:00
或者有机器也可以用 gitlab-ci 之类的东西。
CallMeReznov
2019-04-20 19:00:51 +08:00
就 2-3 台机器是 LINUX,其他都是 200 台 windows.
部署的时候都是手动(没更新,只增量),管理的话我都是写了批处理然后用 zabbix 监控后远程处理的.


其实我也想搞持续集成持续部署..条件不支持啊
bhaltair
2019-04-20 22:39:07 +08:00
上 docker 啊,再配合 gitlab ci,加上 k8s
freddong
2019-04-20 23:03:28 +08:00
参考官方的指导打包为 docker
https://cli.vuejs.org/guide/deployment.html#docker-nginx
后续无论部署什么都简单了
binaryify
2019-04-21 01:18:59 +08:00
我这边用这个 ssh-webpack-plugin 插件

plugins: [new SshWebpackPlugin({
host: 'Remote host',
port: 'Remote port',
username: 'Remote username',
password: 'Remote password',
from: 'Deploy Local path',
to: 'Remote full path',
})]
ericgui
2019-04-21 01:24:21 +08:00
@binaryify 看着这个插件 2 年没更新了,还好用么?
Cbdy
2019-04-21 05:02:19 +08:00
公司用 GitLab 的话还是建议用它提供的 CI 或 Web Hook
参考: https://github.com/cbdyzj/lib17/blob/master/javascript/code/webhook.js
binaryify
2019-04-21 08:54:48 +08:00
@ericgui 用着没问题
fumichael
2019-04-21 20:06:48 +08:00
我目前也是“小作坊”操作
cs419
2019-04-22 09:27:40 +08:00
会用 docker 可以考虑 drone 进行持续集成

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

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

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

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

© 2021 V2EX