艺创AgentAI面向AI开发者创业者设计的开源AI应用框架

64 阅读18分钟

Docker方式安装

环境准备

服务器/本地配置要求:

  • 2核CPU

  • 4GB内存

  • ≥5GB 磁盘空间

在使用Docker部署FastBuildAI之前,请确保您的系统已经安装了以下软件:

您可以通过以下命令检查它们是否已正确安装:

# 检查 Docker 版本
docker --version

# 检查 Docker Compose 版本
docker compose version

部署步骤

1. 获取代码

# Github
git clone https://github.com/gzyxds/cnaiagent.git

# Gitee
git clone https://gitee.com/artaigc/artaigc.git

2. 配置环境变量

在运行 Docker 命令前,首先需要配置环境变量。请确保项目根目录下存在 .env.production.local 文件。您可以从示例文件复制并修改:

# 进入项目根目录
cd FastBuildAI

# 复制环境变量配置文件
cp .env.production.local.example .env.production.local

然后根据您的需求编辑 .env.production.local 文件。如果本地部署且无特殊需求,则无需修改,如果需要部署到线上环境,则需要配置前端接口域名 VITE_APP_BASE_URL。

主要配置项包括:

  • 数据库连接信息

  • API密钥和安全设置

  • 网络和端口配置

3. 启动服务

完成环境变量配置后,在项目根目录执行以下命令启动所有服务:

docker compose -p fastbuildai --env-file ./.env.production.local -f ./docker/docker-compose.yml up -d

docker compose -p fastbuildai --env-file ./.env.development.local -f ./docker/docker-compose.yml up -d --build

这个命令会:

使用 -p fastbuildai 参数指定项目名称
通过 --env-file ./.env.production.local 加载环境变量配置
使用 -f ./docker/docker-compose.yml 指定 Docker Compose 配置文件
通过 up -d 在后台启动所有服务

配置说明

Docker Compose 配置

./docker/docker-compose.yml 文件定义了 FastBuildAI 所需的所有服务容器。默认配置已经能满足大多数使用场景,但您也可以根据需要进行自定义。

服务管理

查看运行状态

docker compose -p fastbuildai -f ./docker/docker-compose.yml ps

查看服务日志

# 查看所有服务的日志
docker compose -p fastbuildai -f ./docker/docker-compose.yml logs

# 查看特定服务的日志(例如 api 服务)
docker compose -p fastbuildai -f ./docker/docker-compose.yml logs api

# 实时查看日志
docker compose -p fastbuildai -f ./docker/docker-compose.yml logs -f

停止服务

docker compose -p fastbuildai -f ./docker/docker-compose.yml down

重启服务

docker compose -p fastbuildai -f ./docker/docker-compose.yml restart

数据持久化

FastBuildAI 的数据默认存储在 Docker 卷中,确保数据在容器重启后不会丢失。主要的数据卷包括:

  • 数据库数据

  • 上传的文件和资源

  • 配置文件

常见问题

端口冲突

如果遇到端口冲突问题,可以修改 .env.production.local 文件中的端口配置,然后重新启动服务。

容器无法启动

请检查:

  1. Docker 服务是否正常运行

  2. 环境变量文件是否正确配置

  3. 查看容器日志获取详细错误信息:

    docker compose -p fastbuildai -f ./docker/docker-compose.yml logs

性能优化

对于生产环境,建议根据服务器配置调整容器资源限制,可以在 docker-compose.yml 文件中设置 CPU 和内存限制。

框架开发

为了更好的开发体验,我们提供了一些工具配置、项目说明,以便于您更好的开发

需要掌握的基础知识

本项目是一个全栈项目,包含前端和后端两个部分,需要一定的前后端基础知识。请确保掌握相关技术栈的基础知识,以便能处理一些常见的问题。建议在开发前先学一下以下内容,提前了解和学习这些知识,会对项目理解非常有帮助:

前端技术栈 (Web)

核心框架:

  • Vue 3 - 渐进式 JavaScript 框架

  • Nuxt 3 - Vue.js 的直观全栈框架

  • TypeScript - JavaScript 的超集,提供类型安全

样式和UI:

状态管理和路由:

其他重要技术:

后端技术栈 (Server)

核心框架:

  • NestJS - 构建高效、可扩展的 Node.js 服务端应用框架

  • TypeScript - JavaScript 的超集,提供类型安全

  • Express - Node.js Web 应用框架

数据库和缓存:

  • TypeORM - TypeScript 和 JavaScript 的 ORM

  • PostgreSQL - 开源关系型数据库

  • Redis - 内存数据结构存储,用作缓存和消息代理

认证和授权:

  • JWT - JSON Web Token,用于身份验证

  • bcryptjs - 密码哈希库

其他重要技术:

  • Bull - 基于 Redis 的队列系统

  • Axios - HTTP 客户端

  • Multer - 文件上传中间件

  • OpenAI - AI 接口集成

工具链

包管理和构建:

  • Pnpm - 快速、节省磁盘空间的包管理器

  • Turbo - 高性能构建系统

  • SWC - 快速的 TypeScript/JavaScript 编译器

  • Vite - 下一代前端构建工具

代码质量:

  • ESLint - JavaScript 代码检查工具

  • Prettier - 代码格式化工具

  • Jest - JavaScript 测试框架

环境要求

基础环境

  • Node.js: 22.x 或更高版本

  • Pnpm: 9.x 或更高版本

  • Git: 用于版本控制

数据库环境

  • PostgreSQL: 14.x 或更高版本

  • Redis: 6.x 或更高版本

开发工具

推荐使用以下开发工具:

  • IDE: Visual Studio Code(推荐)

  • 数据库管理: pgAdmin、DBeaver 或 Navicat

  • API 测试: Postman 或 Insomnia

  • 版本控制: Git + GitHub Desktop(可选)

工具配置

如果您使用的 IDE 是 VS Code(推荐)的话,可以安装以下工具来提高开发效率及代码格式化:

推荐插件

目录结构

如何安装依赖并组织你的应用结构。

Monorepo仓库目录结构

本项目采用 Monorepo 架构,统一管理多个子项目和核心包。根目录结构如下:

.
├── apps/                # 应用主目录(包含 server、web、mobile、doc 等子项目)
│   ├── server/          # 服务端主应用
│   ├── web/             # 前端 Web 应用
│   ├── mobile/          # 移动端应用
│   └── doc/         # 文档站点
├── packages/            # 复用包与核心业务包
│   ├── utils/           # 工具库
│   ├── config/          # 配置相关包
│   ├── ui/              # UI 组件库
│   ├── designer/        # 设计器相关包
│   ├── http/            # HTTP 通信相关包
│   └── assets/          # 资源包
├── public/              # 公共静态资源
├── docker/              # Docker 相关配置与文档
├── .vscode/             # VSCode 编辑器配置
├── .turbo/              # Turbo 构建缓存
├── node_modules/        # 依赖包目录
├── .git/                # Git 版本控制目录
├── .env*                # 环境变量配置文件(多环境)
├── pnpm-workspace.yaml  # pnpm 工作区配置
├── package.json         # 根包管理配置
├── turbo.json           # Turbo 构建工具配置
├── docker-compose.yml   # Docker Compose 配置
├── README.md            # 项目说明文档(英文)
├── README.zh-CN.md      # 项目说明文档(中文)
├── LICENSE              # 许可证
├── tsconfig.json        # TypeScript 配置
├── .editorconfig        # 编辑器配置
├── .prettierignore      # Prettier 忽略文件
├── prettier.config.mjs  # Prettier 配置
├── .npmrc               # npm 配置
├── .gitignore           # Git 忽略文件
└── ...                  # 其他配置文件

目录说明

apps/:存放各个独立运行的应用(如服务端、前端、移动端、文档等)。
packages/:存放可被多个应用复用的业务包、工具包、UI组件等。
public/:公共静态资源目录。
docker/:Docker 相关配置与文档。
.vscode/、.turbo/、node_modules/、.git/:开发、构建、依赖与版本控制相关目录。
.env*:环境变量配置文件,支持多环境(开发、生产、测试)。
pnpm-workspace.yaml:pnpm 工作区配置文件,管理多包依赖。
package.json、turbo.json、tsconfig.json 等:项目根配置文件。
README.md、README.zh-CN.md:项目说明文档(中英文)。
LICENSE:开源许可证。

子项目目录结构

1. apps/server/ - 服务端应用

基于 NestJS 框架的后端应用,提供 API 服务和业务逻辑处理。

apps/server/
├── src/                 # 源代码目录
│   ├── main.ts         # 应用入口文件
│   ├── core/           # 核心功能模块(缓存、数据库、权限等)
│   ├── common/         # 通用组件(装饰器、过滤器、拦截器等)
│   ├── modules/        # 业务模块
│   │   ├── app.module.ts    # 根模块
│   │   ├── console/         # 后台管理 API 模块
│   │   └── web/             # 前台用户 API 模块
│   ├── plugins/        # 插件系统
│   └── assets/         # 静态资源
├── libs/               # 共享库
├── test/               # 测试文件
├── docs/               # 文档
├── dist/               # 构建输出目录
├── storage/            # 文件存储目录
├── package.json        # 依赖配置
├── tsconfig.json       # TypeScript 配置
├── nest-cli.json       # NestJS CLI 配置
└── .swcrc              # SWC 编译配置
2. apps/web/ - 前端 Web 应用

基于 Nuxt.js 框架的前端应用,提供用户界面和交互功能。

apps/web/
├── .nuxt/              # Nuxt 构建缓存
├── .output/            # 构建输出
├── app/                # 页面组件
├── assets/             # 静态资源(CSS、图片等)
├── common/             # 通用模块(组件,hooks,通用数据等)
│   ├── components/         # 组件
│   ├── composables/        # 根模块
│   ├── config/             # 公共配置文件
│   ├── constants/          # 项目常量定义
│   ├── utils/              # 工具函数
├── core/               # 核心功能模块(nuxt vue 核心模块)
│   ├── directives/         # vue 指令
│   ├── i18n/               # 国际化相关
│   ├── layouts/            # nuxt 布局
│   ├── middleware          # nuxt 中间件
│   ├── modules             # nuxt 模块
│   ├── plugins             # nuxt 插件
│   ├── stores              # Pinia存储
├── libs/               # 共享库
├── models/             # 数据模型定义
├── plugins/            # 插件系统
├── public/             # 前端公共静态资源
├── server/             # nuxt 服务端应用
├── services/           # API 服务层
├── types/              # TypeScript 类型定义
├── app.vue             # 根组件
├── nuxt.config.ts      # Nuxt 配置
├── app.config.ts       # 应用配置
└── package.json        # 依赖配置
3. apps/mobile/ - 移动端应用

基于 uni-app/Vite 框架的移动端应用,支持多平台部署。

apps/mobile/
├── src/                # 源代码目录
│   ├── pages/          # 页面组件
│   ├── components/     # 公共组件
│   ├── utils/          # 工具函数
│   ├── api/            # API 接口
│   ├── store/          # 状态管理
│   ├── static/         # 静态资源
│   └── styles/         # 样式文件
├── index.html          # 入口 HTML
├── vite.config.ts      # Vite 配置
├── package.json        # 依赖配置
└── tsconfig.json       # TypeScript 配置
4. apps/doc/ - 文档站点

基于 Next.js + Fumadocs 的文档站点,提供项目文档和API参考。

apps/doc/
├── app/                # Next.js App Router 页面
├── docs/               # Markdown 文档文件
├── components/         # 文档组件
├── styles/             # 样式文件
├── public/             # 公共静态文件
├── lib/                # 工具库
├── hooks/              # React Hooks
├── types/              # TypeScript 类型
├── locales/            # 国际化文件
├── .next/              # Next.js 构建缓存
├── next.config.mjs     # Next.js 配置
├── source.config.ts    # Fumadocs 配置
├── mdx-components.tsx  # MDX 组件配置
└── package.json        # 依赖配置
5. packages/ - 复用包与核心业务包

packages/ 目录用于存放可被多个应用(如 server、web、mobile 等)复用的工具库、UI 组件、配置、资源等核心包,便于代码共享和统一维护。

packages/
├── utils/               # 通用工具库
│   ├── lib/            # 构建产物与类型声明
│   ├── scripts/        # 构建/发布脚本
│   ├── src/            # 源码目录
│   │   ├── index.ts    # 工具库主入口
│   │   └── parse-package-name.ts # 包名解析工具
│   ├── package.json    # 包配置
│   ├── tsconfig.json   # TypeScript 配置
│   └── ...
├── config/              # 配置相关包
│   ├── eslint/         # ESLint 相关配置
│   │   ├── base.js     # 基础 ESLint 配置
│   │   └── http.js     # HTTP 相关 ESLint 配置
│   ├── typescript/     # TypeScript 相关配置
│   │   └── base.json   # 基础 TS 配置
│   ├── ui/             # UI 相关配置
│   │   └── table.js    # 表格 UI 配置
│   ├── package.json    # 包配置
│   └── ...
├── ui/                  # 通用 UI 组件库
│   ├── src/            # 组件源码
│   │   ├── components/ # 具体组件(如 pro-modal、pro-uploader 等)
│   │   ├── composables/# 组合式函数
│   │   ├── utils/      # 工具函数
│   │   ├── styles/     # 样式文件(全局
│   ├── package.json    # 包配置
│   ├── tsconfig.json   # TypeScript 配置
│   └── ...
├── designer/           # 设计器相关包
│   ├── src/            # 设计器源码
│   │   ├── components/ # 设计器专用组件
│   │   ├── composables/# 组合式函数
│   │   ├── utils/      # 工具函数
│   │   ├── stores/     # 状态管理
│   │   ├── types/      # 类型定义
│   ├── package.json    # 包配置
│   ├── tsconfig.json   # TypeScript 配置
│   └── ...
├── http/               # HTTP 通信相关包
│   ├── src/            # 源码目录
│   │   ├── index.ts    # 主入口
│   │   ├── types.ts    # 类型定义
│   │   └── constants.ts# 常量定义
│   ├── test/           # 测试用例
│   │   ├── http-test.js
│   │   └── interceptor.test.ts
│   ├── package.json    # 包配置
│   ├── tsconfig.json   # TypeScript 配置
│   └── ...
├── assets/              # 资源包
│   ├── images/         # 图片资源
│   │   ├── files/      # 文件类型图标
│   │   ├── favicon.ico # 网站图标
│   │   └── logo.png    # 项目 Logo
│   ├── shims-image.d.ts# 图片类型声明
│   ├── package.json    # 包配置
│   └── tsconfig.json   # TypeScript 配置
└── ...                 # 其他可复用包
目录说明
utils/:存放通用工具函数,便于各端复用。
config/:存放各类配置文件和类型定义,支持多端统一配置。
ui/:自研或三方封装的 UI 组件库,统一前端视觉和交互风格。
designer/:低代码、可视化设计器相关的核心包。
http/:HTTP 请求、拦截器、API 通信相关的封装。
assets/:图片、图标、字体等静态资源包,供各端统一引用。

所有包均建议采用独立的

package.json

进行依赖管理,支持按需构建和发布。

插件系统目录结构

项目支持插件化开发,插件分为服务端插件和前端插件两部分,实现功能的模块化扩展。

1. 服务端插件目录结构

服务端插件位于 apps/server/src/plugins/ 目录下,每个插件为独立目录。

apps/server/src/plugins/[plugin-name]/
├── package.json         # 插件包配置信息
├── plugin-main.module.ts # 插件主模块入口
├── install/             # 插件安装配置
├── entities/            # 数据库实体定义
├── modules/             # 业务模块
│   ├── console/         # 后台管理模块
│   └── web/             # 前台用户模块
├── services/            # 业务服务层
├── controllers/         # 控制器
├── dto/                 # 数据传输对象
├── guards/              # 权限守卫
├── decorators/          # 自定义装饰器
└── utils/               # 工具函数
2. 前端插件目录结构

前端插件位于 apps/web/plugins/ 目录下,每个插件为独立目录。

apps/web/plugins/[plugin-name]/
├── package.json         # 插件包配置信息
├── index.ts             # 插件入口文件
├── README.md            # 插件说明文档
├── app/                 # 页面组件
│   ├── console/         # 后台管理页面
│   └── ***/             # 前台用户页面
├── models/              # 数据模型定义
├── services/            # API 服务层
├── components/          # 插件组件
├── composables/         # 组合式函数
├── i18n/                # 国际化文件
├── types/               # TypeScript 类型定义
└── utils/               # 工具函数
3. 插件功能说明
  • 服务端插件:提供后端 API 接口、数据库操作、业务逻辑处理等功能

  • 前端插件:提供用户界面、交互功能、页面路由、状态管理等功能

  • 插件独立性:每个插件拥有独立的包配置、依赖管理和功能模块

  • 插件集成:插件通过统一的注册机制集成到主应用中

  • 模块化开发:支持插件的独立开发、测试和部署

  • 扩展性:通过插件系统实现功能的灵活扩展和定制化

项目配置

带你如何配置项目

环境变量

项目所有的环境变量统一放在项目根目录下的 .env.xxx.local 中便于进行管理。

开发环境配置示例

.env.development.local

# Base
NODE_ENV=development
APP_NAME=FastBuildAI
APP_VERSION=1.0.0

# Server
SERVER_PORT=4090
SERVER_CORS_ENABLED=true
SERVER_CORS_ORIGIN=*
SERVER_SHOW_DETAILED_ERRORS=false

# PM2
PM2_APP_NAME=fastbuildai

# JWT
JWT_SECRET=fastbuildai
JWT_EXPIRES_IN=1d

# Database
DB_TYPE=postgres
DB_HOST=localhost
DB_PORT=5432
DB_USERNAME=postgres
DB_PASSWORD=postgres
DB_DATABASE=fastbuildai
DB_TABLE_PREFIX=fb_
DB_SYNCHRONIZE=true
DB_LOGGING=true

# Redis
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_USERNAME=
REDIS_PASSWORD=
REDIS_DB=0
REDIS_TTL=60*60*24

# Logs
# type LogLevel = "log" | "error" | "warn" | "debug" | "verbose" | "fatal"
LOG_LEVELS=error,warn,debug,fatal
LOG_TO_FILE=true

# Web
VITE_APP_BASE_URL='http://localhost:4090'
VITE_APP_WEB_API_PREFIX=/web
VITE_APP_CONSOLE_API_PREFIX=/console
VITE_APP_SHOP_URL='https://freebuildai-shop.yixiangonline.com'

# Base
NODE_ENV=production
APP_NAME=FastbuildAI
APP_VERSION=1.0.0-beta.6

# Server
SERVER_PORT=4090
SERVER_CORS_ENABLED=true
SERVER_CORS_ORIGIN=*
SERVER_SHOW_DETAILED_ERRORS=true
SERVER_IS_DEMO_ENV=false

# PM2
PM2_APP_NAME=fastbuildai

# JWT
JWT_SECRET=fastbuildai
JWT_EXPIRES_IN=1d

# Database
DB_TYPE=postgres
DB_HOST=localhost
DB_PORT=5432
DB_USERNAME=postgres
DB_PASSWORD=postgres
DB_DATABASE=fastbuildai
DB_TABLE_PREFIX=fb_
DB_SYNCHRONIZE=true
DB_LOGGING=true

# Redis
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_USERNAME=
REDIS_PASSWORD=
REDIS_DB=0
REDIS_TTL=60*60*24

# Cache
CACHE_TTL=60*60*24
CACHE_MAX_ITEMS=1000

# Logs
# type LogLevel = "log" | "error" | "warn" | "debug" | "verbose" | "fatal"
LOG_LEVELS=error,warn,debug,fatal,log
LOG_TO_FILE=true
LOG_DATABASE_SCHEMA=true

# Web
VITE_APP_BASE_URL=
VITE_APP_WEB_API_PREFIX=/api
VITE_APP_CONSOLE_API_PREFIX=/consoleapi

# Docker
NPM_REGISTRY_URL=https://registry.npmmirror.com
QUICK_START_MODE=false
DOCKER_CONTAINER_SUFFIX=
DOCKER_MEMORY_LIMIT=3072M
DOCKER_CPU_LIMIT=1.0
DOCKER_MEMORY_RESERVATION=512M
REDIS_EXTERNAL_PORT=
POSTGRES_EXTERNAL_PORT=

# 示例
# Base
# 运行环境
NODE_ENV=production
# 应用名称(用于日志、PM2等标识)
APP_NAME=FastbuildAI
# 应用版本号(用于信息展示或灰度控制)
APP_VERSION=1.0.0-beta.3

# Server
# 后端服务监听端口
SERVER_PORT=4090
# 是否启用 CORS
SERVER_CORS_ENABLED=true
# CORS 允许的来源,* 表示允许任意来源
SERVER_CORS_ORIGIN=*
# 是否显示详细错误(仅建议在开发环境开启)
SERVER_SHOW_DETAILED_ERRORS=true
# 是否演示环境(开启后可能限制写入/危险操作)
SERVER_IS_DEMO_ENV=false

# PM2
# PM2 进程名称(使用 pm2 启动/管理时的标识)
PM2_APP_NAME=fastbuildai

# JWT
# JWT 签名密钥(请在生产环境务必更换为强随机值)
JWT_SECRET=fastbuildai
# JWT 过期时间(如:60s, 10m, 1h, 1d)
JWT_EXPIRES_IN=1d

# Database
# 数据库类型(例如:postgres、mysql)
DB_TYPE=postgres
# 数据库主机地址
DB_HOST=localhost
# 数据库端口
DB_PORT=5432
# 数据库用户名
DB_USERNAME=postgres
# 数据库密码
DB_PASSWORD=postgres
# 数据库名称
DB_DATABASE=fastbuildai
# 数据表前缀(用于区分不同业务)
DB_TABLE_PREFIX=fb_
# 是否自动同步实体到数据库(生产环境谨慎开启,涉及建表/变更)
DB_SYNCHRONIZE=true
# 是否输出 SQL 日志
DB_LOGGING=true

# Redis
# Redis 主机地址
REDIS_HOST=localhost
# Redis 端口
REDIS_PORT=6379
# Redis 用户名(如未启用 ACL 可留空)
REDIS_USERNAME=
# Redis 密码(如无密码可留空)
REDIS_PASSWORD=
# Redis 数据库索引(0-15)
REDIS_DB=0
# 缓存默认过期时间(秒),支持表达式:60*60*24 表示 1 天
REDIS_TTL=60*60*24

# Logs
# type LogLevel = "log" | "error" | "warn" | "debug" | "verbose" | "fatal"
# 输出的日志级别(逗号分隔,按需选择)
LOG_LEVELS=error,warn,debug,fatal,log
# 是否将日志写入文件(需确保有写入权限)
LOG_TO_FILE=true
# 是否打印数据库 schema 变更信息(用于调试)
LOG_DATABASE_SCHEMA=true

# Web
# 前端接口请求域名,生产环境需填写
VITE_APP_BASE_URL=
# Web 与服务端通讯的 API 前缀
VITE_APP_WEB_API_PREFIX=/api
# 控制台管理端 API 前缀
VITE_APP_CONSOLE_API_PREFIX=/consoleapi

# Docker
# npm镜像源
NPM_REGISTRY_URL=https://registry.npmmirror.com
# 是否使用快速启动模式(可能跳过部分检查/初始化)
QUICK_START_MODE=false
# 容器名称后缀(便于区分不同环境/开发者)
DOCKER_CONTAINER_SUFFIX=
# 容器内存上限(例如:512M, 2G)
DOCKER_MEMORY_LIMIT=2666M
# 容器 CPU 限制(核心数,可小数,如 1.0 表示 1 核)
DOCKER_CPU_LIMIT=1.0
# 容器内存预留(调度期望占用)
DOCKER_MEMORY_RESERVATION=512M
# Redis 宿主机映射端口(用于将容器内 6379 暴露到宿主机)
REDIS_EXTERNAL_PORT=
# Postgres 宿主机映射端口(用于将容器内 5432 暴露到宿主机)
POSTGRES_EXTERNAL_PORT=

插件包配置

插件包的基本配置信息统一在插件包根目录下的 manifest.json 中。这个文件会根据插件创建时填的表单信息自动生成,无需自己手动创建。

{
  "name": "example-plugin",
  "version": "1.0.0",
  "title": "示例插件",
  "description": "示例插件,用于展示插件包的配置",
  "author": "FastBuildAI团队",
  "homepage": "https://www.mddai.cn",
  "dependencies": {},
  "devDependencies": {}
}

在插件包的前后端代码中,会生成带有自身特性的前缀。比如插件后端代码根目录下的 package.json 文件会给包名添加 @server/ 前缀:

{
  "name": "@server/example-plugin",
  "version": "1.0.0",
  "title": "示例插件",
  "description": "示例插件,用于展示插件包的配置",
  "enabled": true,
  "author": "FastBuildAI团队",
  "homepage": "https://www.mddai.cn",
  "dependencies": {},
  "devDependencies": {}
}

同理,插件前端代码根目录下的 package.json 文件会给包名添加 @web/ 前缀:

{
  "name": "@web/example-plugin",
  "version": "1.0.0",
  "title": "示例插件",
  "description": "示例插件,用于展示插件包的配置",
  "enabled": true,
  "author": "FastBuildAI团队",
  "homepage": "https://www.mddai.cn",
  "dependencies": {},
  "devDependencies": {}
}

Git常用的命令

以下是Git的常用命令,按功能分类列出:

## 仓库初始化与配置

```bash
git init                    # 初始化一个新的Git仓库
git clone <url>            # 克隆一个远程仓库到本地
git config --global user.name "姓名"  # 设置全局用户名
git config --global user.email "邮箱" # 设置全局邮箱
git config --list           # 列出所有配置信息
git config --global core.editor "编辑器" # 设置默认编辑器
```

## 基本操作

```bash
git status                 # 查看工作区状态
git add <文件>             # 将文件添加到暂存区
git add .                  # 添加所有修改的文件到暂存区
git add -A                 # 添加所有文件(包括删除的文件)到暂存区
git commit -m "提交信息"    # 提交暂存区的文件到本地仓库
git commit -am "提交信息"  # 跳过暂存区直接提交所有已跟踪的文件
git commit --amend         # 修改最后一次提交
git rm <文件>              # 删除文件并记录到暂存区
git mv <旧文件名> <新文件名> # 重命名文件并记录到暂存区
```

## 查看与比较

```bash
git log                    # 查看提交历史
git log --oneline          # 以简洁形式查看提交历史
git log --graph            # 以图形化方式查看分支合并历史
git log --stat             # 查看提交统计信息
git log -p                 # 查看每次提交的详细变更
git show                   # 显示最近一次提交的详细信息
git diff                   # 查看工作区与暂存区的差异
git diff --cached          # 查看暂存区与本地仓库的差异
git diff HEAD              # 查看工作区与本地仓库的差异
git diff <分支1> <分支2>    # 比较两个分支的差异
git blame <文件>           # 查看文件每一行的修改者和提交信息
```

## 分支管理

```bash
git branch                 # 列出所有本地分支
git branch -r              # 列出所有远程分支
git branch -a              # 列出所有本地和远程分支
git branch <分支名>        # 创建新分支
git branch -d <分支名>     # 删除已合并的分支
git branch -D <分支名>     # 强制删除分支(未合并的)
git checkout <分支名>      # 切换到指定分支
git checkout -b <分支名>   # 创建并切换到新分支
git merge <分支名>         # 将指定分支合并到当前分支
git merge --abort          # 取消正在进行的合并
git rebase <分支名>        # 将当前分支变基到指定分支
git rebase --abort         # 取消正在进行的变基
git rebase --continue      # 继续变基过程
git stash                  # 保存当前工作进度
git stash list             # 列出所有保存的工作进度
git stash apply            # 恢复最近保存的工作进度
git stash drop             # 删除最近保存的工作进度
git stash pop              # 恢复并删除最近保存的工作进度
```

## 远程仓库操作

```bash
git remote                # 列出所有远程仓库
git remote -v             # 列出所有远程仓库及其URL
git remote add <名称> <URL> # 添加新的远程仓库
git remote remove <名称>   # 删除远程仓库
git remote rename <旧名> <新名> # 重命名远程仓库
git fetch <远程仓库名>     # 从远程仓库获取最新版本
git pull <远程仓库名> <分支名> # 从远程仓库拉取并合并到当前分支
git push <远程仓库名> <分支名> # 推送本地分支到远程仓库
git push -u <远程仓库名> <分支名> # 设置上游并推送
git push --force          # 强制推送(覆盖远程历史)
git push --all            # 推送所有分支到远程仓库
git push --tags           # 推送所有标签到远程仓库
```

## 撤销与回退

```bash
git checkout -- <文件>     # 撤销工作区中文件的修改
git reset HEAD <文件>      # 取消暂存区中的文件
git reset --hard HEAD       # 重置工作区和暂存区到最近提交
git reset --soft HEAD~1     # 软重置,保留工作区和暂存区
git reset --mixed HEAD~1    # 混合重置,保留工作区,清空暂存区
git revert <提交ID>        # 创建新提交来撤销指定提交
git clean -f              # 删除工作区中未跟踪的文件
git clean -fd             # 删除工作区中未跟踪的文件和目录
```

## 标签管理

```bash
git tag                   # 列出所有标签
git tag <标签名>          # 创建轻量标签
git tag -a <标签名> -m "标签信息" # 创建带注释的标签
git tag -d <标签名>       # 删除本地标签
git push <远程仓库名> <标签名> # 推送指定标签到远程仓库
git push <远程仓库名> --tags # 推送所有标签到远程仓库
git checkout <标签名>     # 检出指定标签(处于分离头指针状态)
```

## 高级操作

```bash
git cherry-pick <提交ID>   # 选择性地合并提交
git bisect start          # 开始二分查找
git bisect bad            # 标记当前提交为有问题
git bisect good           # 标记当前提交为无问题
git bisect reset          # 重置二分查找状态
git filter-branch         # 重写分支历史
git submodule add <URL> <路径> # 添加子模块
git submodule update      # 更新子模块
git archive --format zip --output <文件名>.zip HEAD # 创建归档文件
git gc                    # 垃圾回收,优化仓库
git fsck                  # 检查仓库完整性
git prune                 # 清理无效的远程分支引用
```



# 设置本地 main 分支跟踪 Gitee 远程仓库的 master 分支
git branch --set-upstream-to=gitee/master main

# 然后可以直接使用以下命令推送
git push
- 推送到 GitHub: git push origin
- 推送到 Gitee: git push gitee


这些命令涵盖了Git的日常使用场景,从基本的提交和分支管理到高级的历史重写和仓库维护。
根据您的具体需求,可以选择使用相应的命令。