首页 > 编程语言 >Vercel是什么?怎么部署Node服务?

Vercel是什么?怎么部署Node服务?

时间:2022-12-14 09:56:31浏览次数:82  
标签:Node node 服务 部署 js Vercel vercel

Vercel是什么?本篇文章带大家了解一下Vercel,并介绍一下在Vercel中部署 Node 服务的方法,希望对大家有所帮助!

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

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

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

Vercel 是什么

Vercel 是一个开箱即用的网站托管平台,方便开发者快速部署自己的网站。它在全球都拥有 CND 节点,因此比 Github 官方自带的 github pages 更加稳定,访问速度更快

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

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

https://juejin.cn/post/7057333396359348255

简单的说,它能极简部署应用到服务端,且是免费不用买服务器

官网

  • Vercel 官网:https://vercel.com/

  • Vercel 工作流官网(网页效果炫酷):https://vercel.com/workflow

常见命令行

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

1.png

笔者对其了解有限,这里罗列下笔者知道的命令

  • 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

2.png

选择好连接的方式后,会在网站弹出

3.png

哟哟,man。what's your name?

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

<!DOCTYPE html>
<html>

<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

4.png

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

部署服务

vercel

5.png

在 https://vercel-sample-ten.vercel.app/ 中能访问到我们的静态服务

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

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

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

可以登录 Vercel 后台查看部署情况

6.png

部署 Node 服务

回归主题,最终我们想部署的是 Nodejs 服务,是后端服务,而非前端静态资源服务,这是关键

同样建立新项目

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

7.png

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

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

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

于是乎我们部署它

vercel

8.png

搞半天没部署上去,后台查看也是无果,呜呼悲哉

google后,发现原来还有一个 vercel.json,可以用 vercel.json 配置和覆盖 vercel 默认行为

下载 @vercel/node 包

npm i @vercel/node -S

填写配置:

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

执行 vercel 部署服务

9.png

访问地址:https://vercel-koa2-t511069160.vercel.app

至此,就完成了 Koa 服务的部署

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

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

延伸思考

Vercel 当然不止笔者所说的这一功能,它还可以自定义域名、serverless、全球支持的 CDN等等

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

个人开发者或小团队而言,这或许就是神器

后续笔者也会尝试用 Vercel 部署一些小应用,实践出真理

附上项目地址:https://github.com/johanazhu/vercel-demo

更多node相关知识,请访问:nodejs 教程

标签:Node,node,服务,部署,js,Vercel,vercel
From: https://www.cnblogs.com/moiom/p/16981289.html

相关文章

  • 卸载 nodejs 时报错 you must be an administrator to remove this application 的解
    这是在win11下报的错,要不怎么说win11就是个笑话。我是这么解决的:首先找到原始的安装包。再以管理员身份打开cmd(怎么操作?先打开一个普通的cmd,然后按住ctl+shift......
  • 31、OAK使用Yolov4-tiny进行训练、部署、测距功能使用
    基本思想:参考官网教程就行,这里只为实现自己的功能,做一下尝试和记录链接:https://pan.baidu.com/s/1vF7zbdyqpsfwmAV8Xmo9MQ 提取码:th5e (前提)安装openVINO环境,以备转换模......
  • Mongo分片集群6.0.3版本 Sharding 模式部署
    概述Shard一个分片包含一个分片集群的一个分片数据子集。集群的碎片一起保存集群的整个数据集。从MongoDB3.6开始,分片必须部署为副本集,以提供冗余和高可用性。用户、客户......
  • nginx反向代理部署springboot项目报404无法加载静态资源
    问题:nginx反向代理部署springboot项目报404无法加载静态资源(css,js,jpg,png...)为什么要用反向代理:springboot默认启动端口为8080,如果需要通过域名(不加端口号)直接访问sprin......
  • 公有云-实验一 实践腾讯云部署Web应用
    实验一实践腾讯云部署Web应用概述企业A需要搭建一套在互联网上发布的论坛平台,但是企业内部并没有完善的基础架构设施,难以保证论坛平台的高可用性和高安全性。经过IT部门......
  • python在pycharm写好程序后,简单的部署方法-非生产环境
    这里说的简单,是真正的简单,不是那种长篇大论方法一:打开cmd,或者用pycharm打开终端,安装pyinstaller详见,http://c.biancheng.net/view/2690.html这种方法可以生成独立的exe......
  • Ansible自动化部署K8S集群
    一、Ansible自动化部署K8S集群1.1Ansible介绍Ansible是一种IT自动化工具。它可以配置系统,部署软件以及协调更高级的IT任务,例如持续部署,滚动更新。Ansible适用于管理企业I......
  • kafka集群介绍+部署Filebeat+Kafka+ELK
    一、消息队列1、为什么需要消息队列(MQ)主要原因是由于在高并发环境下,同步请求来不及处理,请求往往会发生阻塞。比如大量的请求并发访问数据库,导致行锁表锁,最后请求线程会堆......
  • Maven打包部署
    Maven打Jar包问题一Eclipse突然SB告诉我类不存在还让我导包进来O__O"…,但是我明明有这个类。这是不要慌,通过在网上搜索得知:​​​由于eclipse的编译是基于时间戳的判断机制......
  • Web部署
    1、项目配置的理解IDEA中最重要的各种设置项,就是这个ProjectStructre了,关乎你的项目运行,缺胳膊少腿都不行。最近公司正好也是用之前自己比较熟悉的IDEA而不是Eclipse,......