【问题标题】:VueJS build deployment historyVueJS 构建部署历史
【发布时间】:2021-03-15 12:19:53
【问题描述】:

我在我的项目中使用 VueJS 2,但我意识到我的构建部署很糟糕。

这是我在 github 上部署我的 VueJS 构建的脚本:

#!/usr/bin/env sh

# abort on errors
set -e

# build
cd ../..
VUE_APP_ENV=demo vue-cli-service build

# navigate into the build output directory
cd dist

git init
git add -A
git commit -m 'deploy'

git push -f git@github.com:MyRepo/my-project.git master:my-project-demo-deployment

cd -
rm -rf dist/

之后,我转到远程服务器并使用以下命令获取新版本: git pull origin --rebase 我正在使用这个命令,因为我没有 git 历史记录,所以我无法拉取。每次构建都被删除,因为我删除了dist/ 文件夹。

但是这种在远程服务器上部署我的构建的方式不是很好,因为我不能轻易地回到以前的提交,因为我有一个并且每次构建/推送时只提交。

我想知道是否有解决方案可以在 github 上部署我所有不同的构建,以便在远程服务器上正常执行 git pull 我的新构建。我必须编辑我的脚本,但我不知道什么是最好的解决方案。也许我必须创建另一个仓库来存储我所有的构建提交?我不知道。我希望你能帮助我。

【问题讨论】:

  • 部署+回滚+跟踪全流程为什么不用一个平台呢? (Netlify, Vercel)
  • 您的意思是构建应用程序的服务器?
  • 像 Netlify 这样的平台将跟踪特定的 github 存储库(您将在其中随意推送您的最新代码),然后它将在自己的服务器上获取它,运行 yarn build,并将其公开在其中一个他们的 URL 或自定义域(您自己的)。而且它是免费的,尤其是对于基本用途。
  • 哦,好吧,使用 Netlify,我可以在我的分支中选择任何提交,并使用此提交进行新的构建 + 部署?

标签: git vue.js deployment


【解决方案1】:

这是我几周前开始的一个副项目,几乎什么都没做(只是配置)。但是你可以看到:

  • 我确实可以访问一个开箱即用的域名:https://cyrielle-design.netlify.app
  • 它已插入我的私人 Github 存储库: github.com/kissu/free-cyrielle-front
  • 我有 3 个部署:初始一个 + add netlify gitignore + build: add new fancy package + config

如果我点击其中一个构建,我可以访问一些设置,其中之一是“部署站点”,也就是回滚到以前的构建。

所以是的,这不是直接回答您的问题,但我觉得很高兴谈论一个可以极大地帮助您完成部署过程的平台。


我没有赞助或其他什么,但我可以就此发表一些看法。

有一些插件可以让您轻松使用一些后端功能(lambda 函数 + 表单),您拥有真正的分析、拆分测试、身份验证、它为您管理整个缓存失效以及许多很棒的东西。而且它可能会一直保持在免费级别,直到您真正开始拥有大量 IMO 流量的严肃公司业务。

Vercel 是另一个不错的选择。我知道您现在也可以在 Firebase 甚至 Digitalocean 和 Cloudflare 上托管。但我确实使用 Netlify,它可能是目前最简单的前端应用解决方案(几乎相当于 Heroku)。

【讨论】:

  • 好的,谢谢您的回答。正如你所说,我认为我需要使用部署工具。所以我必须将我的服务器上的写入权限授予 Netlify 才能使其正常工作?
  • Netlify 是一个可以为您处理一切的平台。您推送代码,他们会为您完成所有工作。因此,您唯一需要授予访问权限的是私有存储库(如果您想部署私有的东西)。
  • 哦,好的,我看到构建托管在他们的服务器上,对吧?所以如果我有自己的服务器就不行了?
  • 如果您手动操作(也就是没有工具),您可以让它在您自己的服务器上运行。但是 Netlify 会为你托管它,这样你就不需要小心 Apache 配置、DNS 内容、包更新、可能的网络问题、任何事故(如火灾危险)或 DDOS等等等等...你的实际服务器是什么?它是在 Digitalocean 或类似平台上安装 Ubuntu 的 VPS?此外,您可能需要为您的服务器支付少量费用,那么如果您可以简单地免费托管您的前端应用程序,为什么还要付费呢?如您所见,Netlify 对我来说是一件轻而易举的事,哈哈。
  • 实际上我的应用托管在谷歌云服务器上,后端旁边有 docker / nginx
猜你喜欢
  • 2011-01-11
  • 2019-02-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-24
  • 2014-10-20
  • 2020-08-05
相关资源
最近更新 更多