# cloudbase-framework
**Repository Path**: tkmeeta/cloudbase-framework
## Basic Information
- **Project Name**: cloudbase-framework
- **Description**: CloudBase Framework 是云开发官方出品的前后端一体化部署工具 🔥 无需改动代码,前后端一键托管部署,基于Serverless架构,加速访问,弹性免运维
- **Primary Language**: JavaScript
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 15
- **Created**: 2020-10-03
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README

云开发 CloudBase Framework
🚀 CloudBase Framework 是云开发官方出品的前后端一体化部署工具 🔥
无需改动代码,前后端一键托管部署,基于Serverless架构,加速访问,弹性免运维。
官网
/
文档
/
社区
/
问答




## Table of Contents
- [快速开始](#quick-start)
- [项目示例](#examples)
- [插件](#plugins)
- [配置示例](#conf)
- [Changelog](#changelog)
- [License](#license)
- [优秀应用案例](#user)
- [在线交流群](#community)
- [Contributors](#contributor)
- [贡献指南](#contribute)
## 快速开始
1. **安装 CLI**
```bash
npm install -g @cloudbase/cli@latest
```
2. **初始化一个应用**
```bash
cloudbase init
```
3. **部署应用**
```bash
cloudbase framework:deploy
```
**一键部署一个 Vue CLI 创建的 项目**

## 项目示例
| | 名称 | 应用示例介绍 | 基于模板创建项目 |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------- | --------------------------------------- | ------------------------------------------- |
|
| Vue 应用 | Vue + 云函数 + 静态网站部署 | `cloudbase init --template vue` |
|
| React 应用 | React + 云函数 + 静态网站部署 | `cloudbase init --template react-starter` |
|
| React 全栈应用 | React + 云函数 + 静态网站部署+ 云数据库 | `cloudbase init --template react-demo` |
|
| Nuxt SPA 应用 | Nuxt SPA + 云函数 + 静态网站部署 | `cloudbase init --template nuxt-spa` |
|
| Nuxt SSR 应用 | Nuxt SSR + 服务端部署 + 静态网站部署 | `cloudbase init --template nuxt-ssr` |
|
| Koa 应用 | Koa + 服务端部署 | `cloudbase init --template koa-starter` |
|
| Express 应用 | Express + 服务端部署 | `cloudbase init --template express-starter` |
|
| Nest 应用 | Nest + 服务端部署 | `cloudbase init --template nest-starter` |
|
| Egg 应用 | Egg + 服务端部署 | `cloudbase init --template egg-starter` |
|
| Node.js 云函数示例 | Node.js 云函数 | `cloudbase init --template node-starter` |
|
| PHP 云函数示例 | PHP 云函数 | `cloudbase init --template php-starter` |
|
| Java 云函数示例 | Java 云函数 | `cloudbase init --template java-starter` |
|
| VuePresss 网站应用 | VuePresss + 静态网站部署 | `cloudbase init --template vuepress` |
|
| Node.js 云托管 | Node.js + 云托管部署 | `cloudbase init --template node` |
|
| Aqueduct (Dart Server) 云托管 | Aqueduct (Dart Server) + 云托管部署 | `cloudbase init --template dart` |
|
| Omi 应用 | Omi + 云函数 + 静态网站部署 | `cloudbase init --template omi-starter` |
|
| taro 应用 | taro + 云函数 + 静态网站部署 | `cloudbase init --template taro-starter` |
|
| Deno 云托管 | Deno + 云托管部署 | `cloudbase init --template deno` |
|
| Next SSR 应用 | Next SSR + 服务端部署 + 静态网站部署 | `cloudbase init --template next-ssr` |
|
| Go 云函数 | Go + 云函数 | `cloudbase init --template go-starter` |
## 模板
云开发 CloudBase Framework 支持模板工程,提供了多种语言和框架的模板项目,只需要一个命令就可以创建一个开箱即用的工程,并且集成了开发、构建、部署的工作流。
模板可以自由定制,你可以根据自己的需要创建任何语言、框架的模板工程,并通过模板工程一键生成你的初始工程,原有的工程可以很容易改造成 cloudbase 的模板项目,只需要创建一个 cloudbaserc.json,填写必要的配置即可。
更多模板相关介绍,可以点击[查看模板文档](https://github.com/TencentCloudBase/cloudbase-framework/blob/master/doc/template.md)
## 插件
云开发 CloudBase Framework 支持插件机制,提供了多种应用框架和云资源的插件,只需要很少的配置甚至 0 配置就可以现有应用和云开发 CloudBase Framework 框架进行集成。
插件可以处理应用中的一些独立单元的构建、部署、开发、调试等流程。例如 website 插件可以处理静态网站等单元,node 插件可以处理 koa 、express 等 node 应用。插件可以组合使用。
插件的配置写在 cloudbaserc 文件中,目前仅支持 JSON 文件,后续会支持 YAML。
插件的配置可以手动填写,也可以自动生成,目前针对前端框架支持自动识别填写插件。
### 自动检测生成插件配置流程
可以在项目目录下直接运行 `cloudbase` 命令进行自动检测生成插件配置文件并部署
```
cloudbase
✔ 是否使用云开发部署当前项目 ? (Y/n) · true
✔ 选择关联环境 · webpage - [webpage:按量计费]
______ __ __ ____
/ ____// /____ __ __ ____/ // __ ) ____ _ _____ ___
/ / / // __ \ / / / // __ // __ |/ __ `// ___// _ \
/ /___ / // /_/ // /_/ // /_/ // /_/ // /_/ /(__ )/ __/
\_________\____/ \__,_/ \__,_//_____/ \__,_//____/ \___/ __
/ ____/_____ ____ _ ____ ___ ___ _ __ ____ _____ / /__
/ /_ / ___// __ `// __ `__ \ / _ \| | /| / // __ \ / ___// //_/
/ __/ / / / /_/ // / / / / // __/| |/ |/ // /_/ // / / ,<
/_/ /_/ \__,_//_/ /_/ /_/ \___/ |__/|__/ \____//_/ /_/|_|
CloudBase Framework info Version v1.2.10
CloudBase Framework info Github: https://github.com/TencentCloudBase/cloudbase-framework
CloudBase Framework info EnvId webpage
? 检测到当前项目包含 Vue.js 项目
🔨 构建脚本 `npm run build`
📦 本地静态文件目录 `dist`
是否需要修改默认配置 No
? 请输入应用唯一标识(支持大小写字母数字及连字符, 同一账号下不能相同) test-vue
? 是否需要保存当前项目配置,保存配置之后下次不会再次询问 Yes
CloudBase Framework info 📦 install plugins
```
### 目前支持的插件列表
| | 插件 | 最新版本 | 插件介绍 |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------- |
|
| [@cloudbase/framework-plugin-website](packages/framework-plugin-website) | [](https://www.npmjs.com/package/@cloudbase/framework-plugin-website) | 一键部署网站应用 |
|
| [@cloudbase/framework-plugin-node](packages/framework-plugin-node) | [](https://www.npmjs.com/package/@cloudbase/framework-plugin-node) | 一键部署 Node 应用(支持底层部署为函数或者 云托管) |
|
| [@cloudbase/framework-plugin-nuxt](packages/framework-plugin-nuxt) | [](https://www.npmjs.com/package/@cloudbase/framework-plugin-nuxt) | 一键部署 Nuxt SSR 应用 |
|
| [@cloudbase/framework-plugin-function](packages/framework-plugin-function) | [](https://www.npmjs.com/package/@cloudbase/framework-plugin-function) | 一键部署函数资源 |
|
| [@cloudbase/framework-plugin-container](packages/framework-plugin-container) | [](https://www.npmjs.com/package/@cloudbase/framework-plugin-container) | 一键部署云托管容器服务 |
|
| [@cloudbase/framework-plugin-dart](packages/framework-plugin-dart) | [](https://www.npmjs.com/package/@cloudbase/framework-plugin-dart) | 一键部署 Dart 云托管 |
|
| [@cloudbase/framework-plugin-database](packages/framework-plugin-database) | [](https://www.npmjs.com/package/@cloudbase/framework-plugin-database) | 一键声明式部署云开发 NoSQL 云数据库 |
|
| [@cloudbase/framework-plugin-deno](packages/framework-plugin-deno) | [](https://www.npmjs.com/package/@cloudbase/framework-plugin-deno) | 一键部署 Deno 应用 |
|
| [@cloudbase/framework-plugin-next](packages/framework-plugin-next) | [](https://www.npmjs.com/package/@cloudbase/framework-plugin-next) | 一键部署 Next SSR 应用 |
|
| [@cloudbase/framework-plugin-mp](packages/framework-plugin-mp) | [](https://www.npmjs.com/package/@cloudbase/framework-plugin-mp) | 一键部署微信小程序应用 |
## 配置示例
例如一个 Vue 的全栈项目,包含网站前端和云函数
可以在在项目下手动创建一个 `cloudbaserc.json`,填写如下配置文件,调用 `cloudbase framework:deploy` 进行部署
或者直接运行 `cloudbase` 来进行自动检测并部署
```json
{
"envId": "{{envId}}",
"framework": {
"plugins": {
"client": {
"use": "@cloudbase/framework-plugin-website",
"inputs": {
"buildCommand": "npm run build",
"outputPath": "dist"
}
},
"server": {
"use": "@cloudbase/framework-plugin-function",
"inputs": {
"functionRootPath": "cloudfunctions",
"functions": [
{
"name": "helloworld",
"config": {
"timeout": 5,
"envVariables": {},
"runtime": "Nodejs10.15",
"memorySize": 128
}
}
]
}
}
}
}
}
```
更多配置详细参数说明,可以查看配置说明文档,点击[查看配置文档](https://github.com/TencentCloudBase/cloudbase-framework/blob/master/doc/config.md)
## Changelog
CloudBase Framework 的版本变更日志请参阅 [changelog](https://github.com/TencentCloudBase/cloudbase-framework/blob/master/CHANGELOG.md) 文件
## License
开源协议文档请参阅 [Apache License 2.0](https://github.com/TencentCloudBase/cloudbase-framework/blob/master/LICENSE)
## 优秀应用案例
[持续征集优秀应用案例](https://github.com/TencentCloudBase/cloudbase-framework/issues/91)
## 在线交流群
微信群
|
QQ 群
|
## Contributors ✨
Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
[](#contributors-)
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!
## 贡献指南
欢迎大家参与到 CloudBase Framework 的开发工作,贡献一份力量
您可以选择如下的贡献方式:
- [贡献技术文章](./community/posts/README.md)
- [贡献应用模板和案例](./doc/app.md)
- 贡献代码,提交 Pull Request
- 反馈 bug,提交 Issue
- 在技术会议上发表技术演讲
贡献方式请参考 [贡献指南](https://github.com/TencentCloudBase/cloudbase-framework/blob/master/CONTRIBUTING.md) 文档