# ApiTableEasy **Repository Path**: wwh1/ApiTableEasy ## Basic Information - **Project Name**: ApiTableEasy - **Description**: ApiTableEasy - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-19 - **Last Updated**: 2025-10-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 源码 [apitable官方开源地址](https://github.com/apitable/apitable) [apitable官方文档](https://apitable.getoutline.com/s/751b142b-866f-4174-a5f1-a2975f85ad41/doc/developer-quick-start-zofpBpXg9A) [ApiTableEasy地址](https://github.com/shenjipo/ApiTableEasy) ## 背景 `apitable`官方的代码无法直接在windows平台上运行,需要修改一些文件,且官方的项目中包含了很多`多维表格协同编辑`运行时不必要的代码,例如ai相关的组件,影响对于最核心部分代码的研究,因此,从官方的文档中抽取了`多维表格协同编辑`最核心的部分,并修改了必要的配置(具体修改内容参考[APITable开源项目学习](http://101.133.143.249/Blog/#/PreviewPc/PreviewBlog/762ab400-3a20-4af3-ab62-74106f4deda1)),使得新的项目`ApiTableEasy`能够在widnows平台上一键快速启动,方面研究核心业务逻辑 ## ApitableEasy介绍 `ApitableEasy`项目包含三个模块 * backend-server 使用java编写,主要提供除协同编辑之外的后端服务 * room-server 使用nest.js编写,提供协同编辑后端服务 * datasheet-server 使用next.js编写,提供多维表格的web页面 ### 如何启动 启动之前需要准备如下环境 * node16.15.0 * pnpm 8.15.9 * java openjdk 17.0.15 * python 3.13 * Docker Desktop 4.40.0 注意node和pnpm版本必须按照官方指定的版本,不然执行`pnpm i`的时候会报错 此外还要修改本机的**C:\Windows\System32\drivers\etc\hosts**文件,新增如下内容,配置域名解析 > 127.0.0.1 mysql > 127.0.0.1 rabbitmq > 127.0.0.1 redis > 127.0.0.1 room-server > 127.0.0.1 backend-server 按照顺序执行命令 1. 安装依赖 `pnpm i` 2. 编译部分子项目 `pnpm run build:pre`和`pnpm run build:dst` 3. 启动容器部署几个数据库并且初始化数据表,打开`git bash`,执行`make dataenv` 4. 启动`backend-server`,打开`git bash`,执行`make run`,输入1 5. 启动`room-server`,打开`git bash`,执行`make run`,输入2 6. 启动`datasheet-server`,打开`git bash`,执行`make run`,输入3 ### 启动成功示例 启动成功后,打开localhost:3000,会看到`login`页面,登录成功后,会自动跳转到`workench`路由 login页面 ![4690a3c6b095e106f468e8856d410dd2ab.png](http://101.133.143.249/blog-api/getImage/4690a3c6b095e106f468e8856d410dd2ab.png) workench页面 ![7a861e34419c4cf34f46bb12e00af415.png](http://101.133.143.249/blog-api/getImage/7a861e34419c4cf34f46bb12e00af415.png) ### apitable协同编辑实现原理 ## 其他知识点 pnpm的monorepo模式,如果A包依赖了B包,那么当B包修改代码后,需要重新编译才能让A包更新吗 B 是构建型(如 TypeScript 输出到 dist),A 引用的是编译后的产物,那么需要重新编译 ## 创建并启动 docker compose up docker run 启动一个新的容器并运行命令 docker run -d ubuntu docker ps 列出当前正在运行的容器 docker ps docker ps -a 列出所有容器(包括已停止的容器) docker ps -a docker build 使用 Dockerfile 构建镜像 docker build -t my-image . docker images 列出本地存储的所有镜像 docker images docker pull 从 Docker 仓库拉取镜像 docker pull ubuntu docker push 将镜像推送到 Docker 仓库 docker push my-image docker exec 在运行的容器中执行命令 docker exec -it container_name bash docker stop 停止一个或多个容器 docker stop container_name docker start 启动已停止的容器 docker start container_name docker restart 重启一个容器 docker restart container_name docker rm 删除一个或多个容器 docker rm container_name docker rmi 删除一个或多个镜像 docker rmi my-image docker logs 查看容器的日志 docker logs container_name docker inspect 获取容器或镜像的详细信息 docker inspect container_name docker exec -it 进入容器的交互式终端 docker exec -it container_name /bin/bash docker network ls 列出所有 Docker 网络 docker network ls docker volume ls 列出所有 Docker 卷 docker volume ls docker-compose up 启动多容器应用(从 docker-compose.yml 文件) docker-compose up docker-compose down 停止并删除由 docker-compose 启动的容器、网络等 docker-compose down docker info 显示 Docker 系统的详细信息 docker info docker version 显示 Docker 客户端和守护进程的版本信息 docker version docker stats 显示容器的实时资源使用情况 docker stats docker login 登录 Docker 仓库 docker login docker logout 登出 Docker 仓库 docker logout docker-compose up 创建并启动所有服务 docker-compose up -d 在后台运行服务 docker-compose down 停止并移除所有容器、网络 docker-compose ps 查看运行中的服务 docker-compose logs 查看服务日志 docker-compose logs -f web 实时查看 web 服务日志 docker-compose build 构建或重新构建服务镜像 docker-compose start 启动已存在的服务 docker-compose stop 停止运行中的服务 docker-compose restart 重启服务 docker-compose exec web sh 进入 web 服务的容器 docker-compose pull 拉取服务的最新镜像 docker-compose config 验证 Compose 文件格式