教你如何使用 Vercel 服务免费部署前端项目和 ServerLess API

发布于 2024-03-12 09:45:33 字数 6593 浏览 42 评论 0

一、介绍一下 vercel

vercel 是一个站点托管平台,提供 CDN 加速,同类的平台有 NetlifyGithub Pages ,相比之下, vercel 国内的访问速度更快,并且提供 Production 环境和 development 环境,对于项目开发非常的有用的,并且支持持续集成,一次 push 或者一次 PR 会自动化构建发布,发布在 development 环境,都会生成不一样的链接可供预览。

但是 vercel 只是针对个人用户免费, teams 是收费的

首先 vercel 零配置部署,第二访问速度比 github-page 好很多,并且构建很快,还是免费使用的,对于部署个人前端项目路、接口服务非常方便

  • vercel 类似于 github page ,但远比 github page 强大,速度也快得多得多,而且 将 Github 授权给 vercel 后,可以达到最优雅的发布体验,只需将代码轻轻一推,项目就自动更新部署了。
  • vercel 还支持部署 serverless 接口 。那代表着,其不仅仅可以部署静态网站,甚至可以部署动态网站,而这些功能,统统都是免费的
  • vercel 还支持自动配置 https ,不用自己去 FreeSSL 申请证书,更是省去了一大堆证书的配置
  • vercel 目前的部署模板有 31 种之多

vercel template

二、起步

打开 vercel 主页 https://vercel.com/signup

vercel 主页

使用 GitHub 账号去关联 vercel ,后续代码提交到 vercel 可以自动触发部署

GitHub 授权给 vercel

出现授权页面,点击 Authorize Vercel

三、部署 Hexo 博客

vercel 是最好用的静态站点托管平台,借助 vercel 平台,我们可以把博客静态文件部署到 vercel 上,不在使用 GitHub pages 托管,vercel 比 GitHub pages 快多了。

选择一个 vercel 提供的模板部署,当然你也可以把代码提交到 GitHub 上,再去 vercel 选择即可

创建一个 GitHub 项目,代码会自动在 GitHub 账号上创建

创建完成后,等待 vercel 构建

创建成功后自动跳到主页

点击 visit 即可访问创建好的服务 https://hexo-seven-blush.vercel.app ,vercel 会分配给我们一个默认的域名,当然你也可以自定义修改。

我们可以查看打包日志,如果构建过程出现问题,在这里看即可

点击 view domain 绑定自定义域名

然后我们去域名解析处理解析 CNAMEcname.vercel-dns.com

最后解析完成,访问 hexo.poetries.com 自定义域名即可。到此我们把博客 hexo 项目部署到 vercel 上,后期当你在 GitHub 提交代码会自动触发 vercel 打包构建

你也可以从 Github 选择代码来创建项目

导入 GitHub 账号上的项目

部署 vue、react 等前端项目过程也类似,这里不再演示

四、部署 Serverless Api

vercel 部署 Serverless Api ,不购买云服务器也能拥有自己的动态网站

简单演示部署 api 接口服务

配置 vercel.json ,更多配置在 vercel 官网查 https://vercel.com/docs

{
  "headers": [{
    "source": "/(.*)",
    "headers" : [
      {
        "key" : "Access-Control-Allow-Origin",
        "value" : "*"
      },
      {
        "key" : "Access-Control-Allow-Headers",
        "value" : "content-type"
      },
      {
        "key" : "Access-Control-Allow-Methods",
        "value" : "DELETE,PUT,POST,GET,OPTIONS"
      }
    ]
  }],
  "rewrites": [
    {
      "source": "/", // 重定向配置 访问/根路径重定向到/api/query-all-users
      "destination": "/api/query-all-users"
    }
  ]
}

创建接口, vercel 约定在 api 下创建接口路径 ,最后我们可以通过 域名/api/json 域名/api/query-all-users 来访问接口服务,我们这里创建了两个接口

// api/json.js
// req 接收所有请求信息,res 是响应信息
// 通过 module.exports 暴露出去
module.exports = (req, res) => {
  res.send('test')
}

我们这里使用腾讯云数据库,把一些数据存到云数据库上

// utils/db.js

// 操作云数据库的包
const cloudbase = require('@cloudbase/node-sdk')

const app = cloudbase.init({
  env: "填入环境 ID", // 在腾讯云后台创建环境 ID
  // 访问该链接获取 secretId、secretKey 填入即可 https://console.cloud.tencent.com/cam/capi
  secretId: "",
  secretKey: ""
});

// 1. 获取数据库引用
module.exports = app.database();

访问该链接获取 secretId、secretKey 填入即可 https://console.cloud.tencent.com/cam/capi

来到腾讯云控制台,创建环境获取环境 ID

选择 数据库-创建新的集合 users

// api/query-all-users.js
// 查询腾讯云数据库用户记录
const db = require('../utils/db')
const _ = db.command

module.exports = async (req, response) => {
  let {name, pwd, size = 50} = req.query
  
  // 更多语法查看腾讯云数据库文档即可 https://cloud.tencent.com/document/product/876/46897
  let { total } = await db.collection("users").count()
  let pickField = {
    '_id': false,
    createAt: true,
    userName: true,
    address: true
  }
  let { data } = await db.collection("users")
  .field(pickField)
  .orderBy('createAt', 'desc')
  .limit(parseInt(size))
  .get()

  response.json({
    total,
    count: data.length,
    list: data
  })
}

这样我们就写好了两个接口服务,提交代码到 GitHub 上,然后在 vercel 上创建项目导入 GitHub 上的代码部署即可,最后部署的服务通过 https://域名/api/query-all-users?name=小月&size=100 访问即可

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

0 文章
0 评论
23 人气
更多

推荐作者

13886483628

文章 0 评论 0

流年已逝

文章 0 评论 0

℡寂寞咖啡

文章 0 评论 0

笑看君怀她人

文章 0 评论 0

wkeithbarry

文章 0 评论 0

素手挽清风

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文