关于前端:Vercel-部署-Node-服务

52次阅读

共计 2388 个字符,预计需要花费 6 分钟才能阅读完成。

引子

之前在写面试常客:HTTP 缓存时,已经就强缓存和协商缓存写过两个 demo,但缓存要在服务端做,只能贴上代码,不能在网页上感触(尽管我贴了 gif)

笔者的所有 demo 例子都放在 github page 上,其特点是不须要服务器即可部署动态资源,但它不具备部署服务端利用能力

最近笔者在理解 CI/CD 方面的知识点,想起了 Vercel,就想着是否将服务端利用架在 vercel 上呢?

Vercel 是什么

Vercel 是一个开箱即用的网站托管平台,不便开发者疾速部署本人的网站。它在寰球都领有 CND 节点,因而比 Github 官网自带的 github pages 更加稳固,访问速度更快

Koala 聊开源 已经对其有过介绍:Vercel 与 Next.js:开源全明星团队背地的商业逻辑

文字版:Vercel 与 Next.js:开源全明星团队背地的商业逻辑

简略的说,它能极简部署利用到服务端,且是收费不必买服务器

官网

Vercel 官网

Vercel 工作流官网(网页成果炫酷)

常见命令行

将 Vercel 下载到全局(npm i vercel -g),不晓得有什么命令就 -h

笔者对其理解无限,这里列举下笔者晓得的命令

  • vercel login:登录 Vercel 账号
  • vercel dev:本地开启服务
  • vercel dev --bug:本地开启服务并打印日志
  • vercel:部署本地资源到 Vercel 上
  • vercel --prod:更新本地网页

vercel 能够用 vc 来代替,vc 是 Vercel 的缩写

部署动态服务

咱们当初曾经对 vercel 有所理解,前文中说到 Vercel 能简化开发者部署服务,那它能简化到什么水平呢?

这里咱们从零部署一个繁难动态服务

本地装置 Vercel

npm i vercel -g

登录 Vercel

vercel login

抉择好连贯的形式后,会在网站弹出

哟哟,man。what’s your name?

创立一个 HTML 文件,后续咱们要将其上传至 Vercel 服务器上

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Vercel Demo</title>
</head>

<body>
    <h1>Vercel Demo</h1>
</body>

</html>

本地测试一番,输出命令行

vercel dev

因为咱们这是第一次执行,根目录下没有 .vercel,所以要填写一些必要信息,这时你的本地和 Vercel 服务器就绑定好了

部署服务

vercel

在 https://vercel-sample-ten.ver… 中能拜访到咱们的动态服务

在截图中咱们也看到了这句话 Deployed to production. Run vercel --prod to overwrite later,后续咱们要更新资源,用 vercel --prod 即可

好了,除去必要的登录,咱们就用了三个命令就把本地服务部署到 Vercel 服务器上

  • vercel dev:开发时应用,查看利用是否跑得起来
  • vercel:部署服务
  • vercel --prod:更新利用(资源)

能够登录 Vercel 后盾查看部署状况

部署 Node 服务

回归主题,最终咱们想部署的是 Node 服务,是后端服务,而非前端动态资源服务,这是要害

同样建设新我的项目

mkdir vercel-koa2
cd vercel-koa2
npm init -y
npm i koa -S
touch index.js

编写 index.js 中的内容

const Koa = require('koa');
const app = new Koa();

app.use(async ctx => {ctx.body = 'Hello Vercel';});

app.listen(3008, () => {console.log('3008 我的项目启动')
});

PS:3000 端口默认会被 Vercel 应用,所以 Koa 服务要换个端口

应用命令 vercel dev

发现给我报错了,理由是 package.json 的 scripts 中没有 build 快捷符,批改之

...
"scripts": {"build": "node index.js",},
...

再次应用 vercel dev,node 服务跑起来了

于是乎咱们部署它

vercel

搞半天没部署下来,后盾查看也是无果,呜呼悲哉

google 后,发现原来还有一个 vercel.json,能够用 vercel.json 配置和笼罩 vercel 默认行为

下载 @vercel/node

npm i @vercel/node -S

填写配置:

{
  "version": 2,
  "builds": [
    {
      "src": "index.js",
      "use": "@vercel/node"
    }
  ]
}

执行 vercel 部署服务

拜访地址:https://vercel-koa2-t51106916…

至此,就实现了 Koa 服务的部署

与部署动态资源多了两个步骤

下载 @vercel/node 和配置 vercel.json

延长思考

Vercel 当然不止笔者所说的这一性能,它还能够自定义域名、serverless、寰球反对的 CDN 等等

能够毫不夸大地说,用 Vercel 来代替繁琐的云服务器,配合 Github Action 做 CI/CD,就

集体开发者或小团队而言,这或者就是神器

后续笔者也会尝试用 Vercel 部署一些小利用,实际出真谛

附上我的项目地址:https://github.com/johanazhu/…

参考资料

  • Vercel 搭建 API 服务,无需服务器
  • Vercel 与 Next.js:开源全明星团队背地的商业逻辑:文字版
  • Vercel 与 Next.js:开源全明星团队背地的商业逻辑:视频版

正文完
 0