Vercel是什么?怎么部署Node服务?
时间:2022-05-08 [网络编程]作者:fabuyuan 浏览:6 次
之前在写面试常客: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
笔者对其了解有限,这里罗列下笔者知道的命令
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> <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.vercel.app/ 中能访问到我们的静态服务
在截图中我们也看到了这句话Deployed to production. Run vercel --prod to overwrite later
,后续我们要更新资源,用 vercel --prod
即可
好了,除去必要的登录,我们就用了三个命令就把本地服务部署到 Vercel 服务器上
vercel dev
:开发时使用,查看应用是否跑得起来vercel
:部署服务vercel --prod
:更新应用(资源)
可以登录 Vercel 后台查看部署情况
部署 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
发现给我报错了,理由是 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-t511069160.vercel.app
至此,就完成了 Koa 服务的部署
与部署静态资源多了两个步骤
下载 @vercel/node
和配置 vercel.json
延伸思考
Vercel 当然不止笔者所说的这一功能,它还可以自定义域名、serverless、全球支持的 CDN等等
可以毫不夸张地说,用 Vercel 来代替繁琐的云服务器,配合 Github Action 做 CI/CD,就
个人开发者或小团队而言,这或许就是神器
后续笔者也会尝试用 Vercel 部署一些小应用,实践出真理
附上项目地址:https://github.com/johanazhu/vercel-demo
原文地址:https://juejin.cn/post/7094911994226016292
作者:山头人汉波
更多node相关知识,请访问:nodejs 教程!
以上就是Vercel是什么?怎么部署Node服务?的详细内容,更多请关注站长家园其它相关文章!
本文标签: nodenodejsNode.js
转载请注明来源:Vercel是什么?怎么部署Node服务?
本文永久链接地址:https://www.adminjie.com/post/12093.html
免责声明:
本站所发布的一切资源仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。
附:
二○○二年一月一日《计算机软件保护条例》第十七条规定:为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬!鉴于此,也希望大家按此说明研究软件!
版权声明:
一、本站致力于为软件爱好者提供国内外软件开发技术和软件共享,着力为用户提供优资资源。
二、本站提供的部分源码下载文件为网络共享资源,请于下载后的24小时内删除。如需体验更多乐趣,还请支持正版。
三、我站提供用户下载的所有内容均转自互联网。如有内容侵犯您的版权或其他利益的,若有侵犯你的权益请:提交版权证明文件到邮箱 2225329873#qq.com(#换为@) 站长会进行审查之后,情况属实的会在三个工作日内为您删除。
更多精彩内容
- VUE中V-IF条件判断改变元素的样式操作
- Discuz如何解决安装时报错run_sql_error
- 低版本VS项目在VS2019无法正常编译的问题
- PHP+Redis链表解决高并发下商品超卖问题(实现原理及步骤)
- Oracle数据库的实例/表空间/用户/表之间关系简单讲解
- RSA2是啥?PHP-RSA2签名验证怎么实现?
- 华为dubal20是什么型号
- ana an00华为是什么型号
- html5的标题标记一共有几个等级
- 电脑显示信号线无连接是什么意思
- app是什么应用程序的简称
- html5中onclick是什么意思
- 小程序大小超限除了分包还能怎么做?如何避免和解决大小限制?
- angular与bootstrap的区别是什么
- vivov1818a是什么手机型号

- 最新文章
-
-
oracle怎么去掉换行符
方法:1、用replace,语法“replace(replace(列名,CHR(10),\'\'),chr(13),\'\')”;2、用translate,语法...
-
jquery是什么的一个类库
jquery是JavaScript封装的一个类库。jQuery是为了简化JS的开发或者DOM等操作而开发的一种类库;它封装了JS常用的功能代码(函数),提供一种...
-
oracle怎么删除session
删除session的方法:1、利用“v$session”视图,查看会话的sid和“serial#”;2、利用alter语句删除session即可,语法为“alt...
-
oracle怎么关闭em
方法:1、用“emctlstatusdbconsole”查看em状态;2、用“emctlstopdbconsole”使em停止运行;3、用“emca-...
-
jquery怎么添加和移除元素
添加元素的方法:1、用append()或prepend()在指定元素内部添加子元素;2、用after()或before()添加同级元素。移除方法:1、用remo...
-
- 热门文章
-
-
VUE中V-IF条件判断改变元素的样式操作
这篇文章主要介绍了VUE中V-IF条件判断改变元素的样式操作,具有很好的参考价值,希望对大家有所帮助。一起跟随想过来看看吧...
-
Discuz如何解决安装时报错run_sql_error
问题环境VMware虚拟机Centos7.3PHP7.0MySQL8.0NGINX1.14Discuz3.4问题还原本地环境为PHP5.6+MySQL5.6在安...
-
低版本VS项目在VS2019无法正常编译的问题
低版本VS项目在VS2019无法正常编译的问题这里指的编译并不准确,只是为了方便说明。后有(未安装),201?...
-
PHP+Redis链表解决高并发下商品超卖问题(实现原理及步骤)
实现原理使用redis链表来做,因为pop操作是原子的,即使有很多用户同时到达,也是依次执行,推荐使用。实现步骤第一步,先将商品库存入队列/**.trigge...
-
Oracle数据库的实例/表空间/用户/表之间关系简单讲解
完整的Oracle数据库通常由两部分组成:Oracle数据库和数据库实例。Oracle是一种数据库管理系统,是一种关系型的数据库管理系统。我们用这些高级权限账号...
-