Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/serverless-plus/serverless-cnode
使用 Next.js + TypeScript 开发,并且基于 Serverless 部署的 cnode 客户端
https://github.com/serverless-plus/serverless-cnode
cnode nextjs serverless typescript
Last synced: 3 days ago
JSON representation
使用 Next.js + TypeScript 开发,并且基于 Serverless 部署的 cnode 客户端
- Host: GitHub
- URL: https://github.com/serverless-plus/serverless-cnode
- Owner: serverless-plus
- License: mit
- Created: 2020-06-18T03:18:24.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2023-03-05T01:52:00.000Z (over 1 year ago)
- Last Synced: 2024-08-01T21:47:36.677Z (3 months ago)
- Topics: cnode, nextjs, serverless, typescript
- Language: JavaScript
- Homepage: https://cnode.yuga.chat
- Size: 700 KB
- Stars: 24
- Watchers: 3
- Forks: 4
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-serverless-framework - serverless-cnode - 基于 [Next.js](https://github.com/vercel/next.js) 的 Cnode 客户端 🚀 (开发模板)
README
# Serverless Cnode
[在线预览](https://cnode.yuga.chat)
使用 Next.js + TypeScript 开发,并且基于 Serverless 部署的 cnode 客户端
## 流程图
![Deploy Flow](./docs/ssr-deploy-flow.png)
## 功能
- [x] Typescript
- [x] Next.js
- [x] 自定义 Express Server
- [x] LRU Render Cache
- [x] 基于 Serverless Next.js 组件部署
- [x] **静态资源分离,自动部署到 COS**
- [x] **自动为静态 COS 配置 CDN**
- [x] **node_modules 基于层部署,大大提高部署效率**## 本地开发
```bash
$ npm install$ npm run dev
```## 构建
```bash
$ npm run build
```## 配置
在部署到 Serverless 前,将 `.env.example` 重命名为 `.env`,并请完成如下配置:
```dotenv
# 腾讯云授权密钥
TENCENT_APP_ID=xxx
TENCENT_SECRET_ID=xxx
TENCENT_SECRET_KEY=xxx# 部署地区
REGION=ap-guangzhou# 静态资源上传 COS 桶名称
BUCKET=serverless-cnode# API 网关自定义域名 和 证书 ID
APIGW_CUSTOM_DOMAIN=cnode.yuga.chat
APIGW_CUSTOM_DOMAIN_CERTID=xxx# CDN 域名,证书 ID
CDN_DOMAIN=static.cnode.yuga.chat
CDN_DOMAIN_CERTID=xxx
```> 注意:如果不需要使用 CDN,直接使用 COS 自动生成的域名,也是可以的,只需要删除
> `serverless.yml` 中的 `cdnConf` 即可。## 部署
此项目会先将 `node_modules` 部署到
[层](https://cloud.tencent.com/document/product/583/40159),然后在部署项目代码,
这样下次部署项目时,如果 `node_modules` 没有修改,我们就不需要部署庞大的
`node_modules` 文件夹了。1. 部署层:
```bash
$ npm run deploy:layer
```> 注意:如果项目 `node_modules` 没有变更,就不需要执行此命令。
2. 部署业务代码:
```bash
$ npm run deploy
```## License
MIT