首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  程序员

请教下 vue 项目的部署流程

  •  1
     
  •   sufaith · 61 天前 · 3878 次点击
    这是一个创建于 61 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    第 1 条附言  ·  61 天前
    如果有细化一点的方案,更好
    33 回复  |  直到 2019-04-22 09:27:40 +08:00
        1
    slimhigh   61 天前
    配个 CI Pipeline,把这个流程自动化。
        2
    xsir   61 天前
    gitlab CI Pipeline docker 全自动部署
        3
    LeoQ   61 天前 via iPhone
    阿里云 oss 可以考虑一下
        4
    tinybaby365   61 天前
    使用 gitlab ci 部署,先 docker multi stage 编译出 nginx+dist 的部署镜像,再触发 k8s 的滚动更新。
        5
    linmq   61 天前 via iPhone
    raync 写个脚本,敲一个命令自动上传部署
        6
    nekoleamo   61 天前
    上家公司是创业公司,用的 pm2 自动部署,配置操作挺简单的,就是没法无缝更新,替换的时候会有十几秒无法访问
        7
    shenyu1996   61 天前
    自己小项目用的 buddy.works
        8
    shingle   61 天前 via Android
    其实最简单的 docker+git 就可以,服务器初始化一个仓库(默认的 init 达不到效果,需要配置),docker 跑一个 nginx 然后把 dist 文件夹挂在进去,写一个 git hook 钩子自动触发更新
        9
    shingle   61 天前 via Android   ♥ 1
    之前写过一篇折腾...https://shingle.me/post/给 git 配置钩子实现服务器和客户端代码一致 /
        10
    avenger   61 天前 via iPhone
    laravel + vue 的项目,用的这个

    https://deployer.org
        11
    HarryQu   61 天前
    只有我一个人写 sh 脚本,打包、上传 ?

    看来得抽空研究下 ci 了。
        12
    yuikns   61 天前
    我有个简单的工程,build 完了 dist 放到 hou 这个 image 的 /app 下。整个流程都可以放到 Dockerfile 里面

    https://github.com/argcv/hou

    然后线上 pull + up 就行
        13
    AngryMagikarp   61 天前
    使用 Gitlab CI 的话需要在 Runner 所在的服务器配置一个 node 环境来编译,编译的时候会占用比较多的内存和 CPU。

    个人建议在你电脑上用 ansible 来自动化。没必要模仿所谓的大厂,大厂的人力资源是你们的几十倍,很多都有自己开发的一套发布系统。
        14
    tomczhen   61 天前
    都用 webpack,加个 scp upload plugin 不算什么麻烦事吧。
        15
    ericgui   61 天前
    部署在 netlify 上 --- 如果是开源项目的话
        16
    fmumu   61 天前 via Android
    没人用 Jenkins 吗?
        17
    chniccs   61 天前
    像我这么原始的有么,本地生成 dist 目录,然后放到另一个源,推送上去,然后 webhook 服务器自动 pull。虽然 low,但我还用的挺开心的
        18
    lihongjie0209   61 天前
    个人简单使用那写一个 rsync 脚本就可以了

    团队使用用 CI 工具持续集成
        19
    lauix   61 天前
    自己写了个 python 脚本自动化部署,公司一般都是 Jenkins docker 部署
        20
    YuansMine   61 天前
    GitHub webhook 还是基本能实现的,如果有更多的需求的话就得看看 CI 相关的知识了
        21
    justin2018   60 天前
    @avenger 收藏了 这个不错 😁
        22
    jhsea3do   60 天前
    @nekoleamo

    pm2 做后台进程的托管,类似 supervisord 或者 systemd, 但是 vue 打包应该和这个无关,只是 ci / repository 这块
        23
    zhouhui   60 天前
    自己写一段?
    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 "发布成功..."
    ```
        24
    zhouhui   60 天前
    或者有机器也可以用 gitlab-ci 之类的东西。
        25
    CallMeReznov   60 天前
    就 2-3 台机器是 LINUX,其他都是 200 台 windows.
    部署的时候都是手动(没更新,只增量),管理的话我都是写了批处理然后用 zabbix 监控后远程处理的.


    其实我也想搞持续集成持续部署..条件不支持啊
        26
    bhaltair   60 天前
    上 docker 啊,再配合 gitlab ci,加上 k8s
        27
    freddong   60 天前
    参考官方的指导打包为 docker
    https://cli.vuejs.org/guide/deployment.html#docker-nginx
    后续无论部署什么都简单了
        28
    binaryify   60 天前
    我这边用这个 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',
    })]
        29
    ericgui   60 天前
    @binaryify 看着这个插件 2 年没更新了,还好用么?
        30
    Cbdy   60 天前 via Android
    公司用 GitLab 的话还是建议用它提供的 CI 或 Web Hook
    参考: https://github.com/cbdyzj/lib17/blob/master/javascript/code/webhook.js
        31
    binaryify   60 天前 via iPhone
    @ericgui 用着没问题
        32
    fumichael   59 天前
    我目前也是“小作坊”操作
        33
    cs419   59 天前
    会用 docker 可以考虑 drone 进行持续集成
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3714 人在线   最高记录 5043   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 22ms · UTC 07:51 · PVG 15:51 · LAX 00:51 · JFK 03:51
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1