Now.sh: 最好的 Serverless Deployment Dashboard
2018-12-09
Github 部署 Jekyll 到 Vercel 出现错误
sh: sudo: command not found Error: Command "sudo gem install bundler jekyll && jekyll build" exited with 127
修改一下 Build Command 即可:
gem install bundler jekyll && jekyll build
ZEIT 是一个部署平台, 可以部署很多东西, 主要目的是部署一些 Serverless 的项目
一天 1000 次 invokes 用于小项目完全足够
cnpm install now --save-dev
部署整个文件夹, 然后就会 自动执行 npm start
首先
now login
登陆,然后在项目根目录执行:
now
就可以开始部署了
now dev
如果遇到 yarn 无法找到的错误就可以
npm i -g yarn
执行过程中会在本地安装模块到 node_modules
注意 node server 和纯 node 的部署不一样
{ "version": 2, "builds": [{ "src": "src/index.js", "use": "@now/node" }], "routes": [{ "src": "/.*", "dest": "src/index.js" }] }
这个是简单 node server 的部署
一定要配置 package.json
里面 scripts
的 start
, 这个是作为部署后的入口
根目录添加一个文件 now.json
:
{ "version": 2, "builds": [ { "src": "index.js", "use": "@now/node-server" } ] }
-
src: 对应的入口文件
-
use: 对应部署模式, 这里的模式就是简单 node server
{ "version": 2, "builds": [{ "src": "index.js", "use": "@now/node" }], // 如果没有这一行就成了文件部署 "routes": [{ "src": "/.*", "dest": "index.js" }] // 如果没有这一行则无法访问到 graphQL // 将所有的路由定位到 index.js // 如果开启了多个端口那么就应该重定位一下 }
正常情况我们是 3000 建立 server 然后 4000 端口建立 graphQL
原本是在 http://localhost:4000/graphql
访问 graphQL,进行 routes
设置之后就可以在同一个端口或者 alias 访问到了
很简单很简单, 看看就懂了, 如果 deployment 之后访问路由出现 FNF 的错误就可能是这部分的问题
…… "routes": [{ "src": "/.*", "dest": "src/index.js" }] // 将所有根目录的 url 请求 route 到 src/index.js …… "routes": [{ "src": "/product/(?<id>[^/]+)", "dest": "/product?id=$id" }] …… // 将所有 url 为 /product/123 结尾的 route 到 /product?id=123
Code: NO_STATUS_CODE_FROM_FUNCTION
这个一般是因为后台没有返回任何数据。很有可能你是进了一个返回 error 的 route 然后 error 被 throw 然后没有返回。
关于本文
文章标题 | Now.sh: 最好的 Serverless Deployment Dashboard |
发布日期 | 2018-12-09 |
文章分类 | Tech |
相关标签 | #NodeJS #Now #Deployment |
留言板
PLACE_HOLDER
PLACE_HOLDER
PLACE_HOLDER
PLACE_HOLDER