# cloudbase-framework **Repository Path**: JeffreyBool/cloudbase-framework ## Basic Information - **Project Name**: cloudbase-framework - **Description**: 🚀 A front-end and back-end integrated deployment tool 🔥 One-click deploy to serverless architecture. - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-12-15 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ![](https://main.qcloudimg.com/raw/bfbcf950e2b8f42b4c5ba31fa09361e4.png)

Github License Npm version lerna download issue PRs Welcome star

云开发 CloudBase Framework

🚀 CloudBase Framework 是云开发官方出品的前后端一体化部署工具 🔥

无需改动代码,前后端一键托管部署,基于Serverless架构,加速访问,弹性免运维。

官网 / 文档 / 社区 / 问答

![](https://main.qcloudimg.com/raw/2e1f83c30bdea819b3a7d0c098353c9b.png) ![](https://main.qcloudimg.com/raw/ac39db57bcadce1a47d490935bd46c79.png) ![](https://main.qcloudimg.com/raw/18f05eadb428fb281a8ff78ae79087fe.png) ![](https://main.qcloudimg.com/raw/c821f21c3ff43d26db39cadf85957e94.png) ## Table of Contents - [快速开始](#quick-start) - [项目示例](#examples) - [插件](#plugins) - [配置示例](#conf) - [整体架构](#architect) - [Roadmap](#roadmap) - [贡献指南](#contribute) - [License](#license) - [Changelog](#changelog) - [在线交流群](#qq) ## 快速开始 1. **安装 CLI** ```bash npm install -g @cloudbase/cli@latest ``` 2. **初始化一个应用** ```bash cloudbase init ``` 3. **部署应用** ```bash cloudbase framework:deploy ``` **一键部署一个 Vue CLI 创建的 项目** ![](https://6678-fx-1259727701.tcb.qcloud.la/ezgif-4-ee79409c8665.gif) ## 项目示例 | | 名称 | 应用示例介绍 | 基于模板创建项目 | | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------- | ---------------------------------------------- | ------------------------------------------- | | | 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 + Serverless 云应用部署 | `cloudbase init --template node` | | | Aqueduct (Dart Server) 云应用 | Aqueduct (Dart Server) + Serverless 云应用部署 | `cloudbase init --template dart` | | | Omi 应用 | Omi + 云函数 + 静态网站部署 | `cloudbase init --template omi-starter` | | | uni-app 应用 | uni-app + 云函数 + 静态网站部署 | `cloudbase init --template uni-app-starter` | | | taro 应用 | taro + 云函数 + 静态网站部署 | `cloudbase init --template taro-starter` | | | Deno 云应用 | Deno + Serverless 云应用部署 | `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 init --without-template` 生成项目配置· - `cloudbase framework:deploy` 进行自动检测生成插件配置文件并部署 ### 目前支持的插件列表 | | 插件 | 最新版本 | 插件介绍 | | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------- | | | [@cloudbase/framework-plugin-website](packages/framework-plugin-website) | [![Npm version](https://img.shields.io/npm/v/@cloudbase/framework-plugin-website)](https://www.npmjs.com/package/@cloudbase/framework-plugin-website) | 一键部署网站应用 | | | [@cloudbase/framework-plugin-node](packages/framework-plugin-node) | [![Npm version](https://img.shields.io/npm/v/@cloudbase/framework-plugin-node)](https://www.npmjs.com/package/@cloudbase/framework-plugin-node) | 一键部署 Node 应用(支持底层部署为函数或者 Serverless 云应用) | | | [@cloudbase/framework-plugin-nuxt](packages/framework-plugin-nuxt) | [![Npm version](https://img.shields.io/npm/v/@cloudbase/framework-plugin-nuxt)](https://www.npmjs.com/package/@cloudbase/framework-plugin-nuxt) | 一键部署 Nuxt SSR 应用 | | | [@cloudbase/framework-plugin-function](packages/framework-plugin-function) | [![Npm version](https://img.shields.io/npm/v/@cloudbase/framework-plugin-nuxt)](https://www.npmjs.com/package/@cloudbase/framework-plugin-function) | 一键部署函数资源 | | | [@cloudbase/framework-plugin-container](packages/framework-plugin-container) | [![Npm version](https://img.shields.io/npm/v/@cloudbase/framework-plugin-container)](https://www.npmjs.com/package/@cloudbase/framework-plugin-container) | 一键部署云应用容器服务 | | | [@cloudbase/framework-plugin-dart](packages/framework-plugin-dart) | [![Npm version](https://img.shields.io/npm/v/@cloudbase/framework-plugin-dart)](https://www.npmjs.com/package/@cloudbase/framework-plugin-dart) | 一键部署 Dart 云应用 | | | [@cloudbase/framework-plugin-database](packages/framework-plugin-database) | [![Npm version](https://img.shields.io/npm/v/@cloudbase/framework-plugin-database)](https://www.npmjs.com/package/@cloudbase/framework-plugin-database) | 一键声明式部署云开发 NoSQL 云数据库 | | | [@cloudbase/framework-plugin-deno](packages/framework-plugin-deno) | [![Npm version](https://img.shields.io/npm/v/@cloudbase/framework-plugin-deno)](https://www.npmjs.com/package/@cloudbase/framework-plugin-deno) | 一键部署 Deno 应用 | | | [@cloudbase/framework-plugin-next](packages/framework-plugin-next) | [![Npm version](https://img.shields.io/npm/v/@cloudbase/framework-plugin-next)](https://www.npmjs.com/package/@cloudbase/framework-plugin-next) | 一键部署 Next SSR 应用 | ## 配置示例 例如一个 Vue 的全栈项目,包含网站前端和云函数 可以在在项目下手动创建一个 `cloudbaserc.json`,填写如下配置文件,调用 `cloudbase framework:deploy` 进行部署 或者直接运行 - `cloudbase init --without-template` - `cloudbase framework:deploy` 进行自动检测并部署 ```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) ## 整体架构 云开发 CloudBase Framework 基于云开发底层资源和云开发资源编排管理,整体包含 CLI 工具层、应用框架层和 CI/CD 层。 - CLI 层针对主流应用框架进行了适配,可以一键无缝集成,并提供开发、一键部署等功能 - 应用框架层提供了针对不同语言和框架的 SDK 和组件,同时对底层云资源进行抽象 - CI/CD 层可以实现云端部署、代码平台集成、灰度发布和升级回滚等功能 ![](https://main.qcloudimg.com/raw/e7c525c09ce3197996924a2b70ac0c87.png) ## Roadmap ![](https://main.qcloudimg.com/raw/7fcf4e7822f89fc3807ccc68424e6fe5.png) 🚀 表示已经实现的功能 | 里程碑 | 状态 | | ---------------------------------------------------------------------- | ---- | | 框架核心功能支持插件机制,适配 Cloudbase CLI | 🚀 | | 开发 Website plugin 支持部署前端静态项目 | 🚀 | | 自动检测前端框架 (Vue/React 等主流框架) 使用 Website plugin | 🚀 | | 开发 Nuxt plugin 支持 Nuxt SSR 项目 | 🚀 | | 开发 Function plugin 支持自动部署函数 | 🚀 | | 开发 Node Api Plugin 支持一键部署 Node 应用 | 🚀 | | 插件支持编译成 SAM 描述 | 🚀 | | 自动检测 Express/ Koa 等主流 Node 框架使用 Node Api Plugin | 🚀 | | 云开发全栈框架支持 | | | Node Api Plugin 支持建模和代码生成 | | | 结合 Github Action、Coding 等平台的 CI/CD 功能 | | | 支持后端部分容器化构建,提供服务函数化构建的另一个选项 | 🚀 | | 开发 SAM Plugin 支持 SAM 扩展插件,框架可引入第三方 SAM 扩展(如 CMS) | | | 开发 Flutter Plugin 支持 Flutter 的 Dart 后端一键部署 | 🚀 | ## 贡献指南 欢迎大家参与到 CloudBase Framework 的开发工作,贡献一份力量 您可以选择如下的贡献方式: - [贡献技术文章](./community/posts/README.md) - [贡献应用](./doc/app.md) - 贡献代码,提交 Pull Request - 反馈 bug,提交 Issue - 在技术会议上发表技术演讲 贡献方式请参考 [贡献指南](https://github.com/TencentCloudBase/cloudbase-framework/blob/master/CONTRIBUTING.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) ## 在线交流群
微信群
QQ 群
## Contributors ✨ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)): [![All Contributors](https://img.shields.io/badge/all_contributors-20-orange.svg?style=flat-square)](#contributors-)

Booker Zhao

🚇 ⚠️ 💻 🔌

Weijia Wang

💻

hengechang

💻 🚇

Zijie Zhou

💻 🔌 📢

erikqin

💻 🚧 💡

Hanqin

🐛

Zem

💻

magenta

📝 💻

TIANXIANG LAN

🖋

liyuanfeng

💻

白宦成

💻

易良

💻

Sherry Zhang

💻 📝

RealyBig

💻

Saiya

📢 🐛 📝

mirageql

💻 📝

Tab Liang

💻

juukee

🐛

Albert Liu

💻

SearchFan

🐛
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!