2. 开发环境搭建:Node.js、Yarn、Docker安装、Backstage CLI初始化项目、项目目录结构解析

搭建一个稳定、可复现的开发环境是Backstage插件开发的第一步。本章将指导你完成从基础运行时安装到项目初始化的全流程,并深入解析Backstage默认项目的目录结构,为后续的插件开发打下坚实基础。

2.1 基础运行时安装

Backstage基于Node.js生态,依赖Yarn作为包管理器,并利用Docker容器化技术运行本地数据库和服务。请按以下顺序安装。

2.1.1 Node.js 安装

推荐使用 Node.js 18 LTS 或 20 LTS 版本。Backstage对Node.js版本有严格兼容性要求,低于16或高于21的版本可能导致构建失败。

  • 下载地址:https://nodejs.org/(选择LTS版本)
  • 验证安装:打开终端执行 node --version 和 npm --version
版本管理建议:推荐使用 nvm(Node Version Manager)管理多版本Node.js,避免项目间版本冲突。安装后执行 nvm install 18 即可切换。

2.1.2 Yarn 安装

Backstage使用Yarn Classic(v1.x)的Workspaces功能管理多包仓库。请安装Yarn Classic,不要使用Yarn Berry(v3+)。

# 通过npm全局安装Yarn Classic
npm install -g yarn

# 验证安装
yarn --version   # 预期输出 1.22.x

2.1.3 Docker 安装

Docker用于运行Backstage依赖的后端基础设施(如PostgreSQL、Redis等)。本地开发时,Docker Compose用于一键启动这些服务。

  • Docker Desktop:适用于Windows和macOS,自带Docker Compose。
  • Linux:分别安装 docker-ce 和 docker-compose-plugin。
  • 验证安装:docker --version 和 docker compose version

2.2 Backstage CLI 初始化项目

Backstage提供了官方CLI工具 @backstage/create-app,用于快速生成标准项目模板。初始化过程会自动配置Yarn Workspaces、TypeScript、ESLint、Prettier等工具链。

2.2.1 创建新项目

# 使用npx直接创建,无需全局安装
npx @backstage/create-app@latest

# 交互式提示输入项目名称,例如:my-backstage
# 等待依赖安装完成(约3-5分钟,视网络情况而定)

2.2.2 启动开发服务器

# 进入项目目录
cd my-backstage

# 启动开发模式(同时启动前端和后端)
yarn dev

启动成功后,终端会显示前端地址(默认 http://localhost:3000)和后端地址(默认 http://localhost:7007)。打开浏览器访问前端地址,即可看到Backstage默认首页。

常见问题:如果 yarn dev 启动失败,请检查Node.js版本是否为18或20 LTS,并确保Docker已启动且端口3000/7007未被占用。首次启动可能需要下载Docker镜像(如PostgreSQL),请保持网络畅通。

2.3 项目目录结构解析

初始化后的Backstage项目采用Monorepo架构,所有代码集中在根目录下,通过Yarn Workspaces管理。理解目录结构是后续插件开发的关键。

2.3.1 顶层目录总览

目录/文件 用途说明
packages/ 核心包目录,包含 app(前端)和 backend(后端)
plugins/ 插件目录,所有自定义插件和第三方插件均放置于此
app-config.yaml 主配置文件,定义应用标题、后端连接、集成配置等
catalog-info.yaml 服务目录实体定义文件,用于注册组件、API、资源等
package.json 根级package.json,定义Workspaces和全局脚本
tsconfig.json TypeScript根配置,所有子包继承此配置
yarn.lock 依赖锁定文件,确保团队成员安装相同版本

2.3.2 packages/ 核心包详解

  • packages/app:前端应用入口,基于React和Material-UI。包含路由配置、主题定制、全局布局。插件的前端组件在此注册。
  • packages/backend:后端服务入口,基于Express和Node.js。负责插件后端逻辑、数据库连接、认证授权、任务调度等。

2.3.3 plugins/ 插件目录约定

每个插件在 plugins/ 下拥有独立子目录,命名规范为 plugin-<name>。一个典型的插件目录结构如下:

plugins/
└── plugin-my-plugin/
    ├── src/                  # 源代码
    │   ├── index.ts          # 插件入口,导出组件和API
    │   ├── components/       # React组件
    │   ├── api/              # API客户端
    │   └── routes.ts         # 路由定义
    ├── dev/                  # 开发环境独立运行入口
    ├── package.json          # 插件级依赖声明
    └── README.md             # 插件文档

2.4 开发环境架构图

下图展示了本地开发环境中各组件之间的通信关系与依赖链路。

Backstage 本地开发环境架构 开发者工作站 Node.js 18 LTS Yarn Classic 1.x Docker + Compose Backstage App packages/app (React) Backstage Backend packages/backend (Express) plugins/ 目录 PostgreSQL (Docker) Docker 容器提供 数据库与缓存服务

2.5 环境验证清单

完成安装后,请逐项核对以下清单,确保环境就绪。

检查项 验证命令 预期结果
Node.js 版本 node --version v18.x.x 或 v20.x.x
Yarn 版本 yarn --version 1.22.x
Docker 运行中 docker ps 显示容器列表(可能为空)
Docker Compose docker compose version Docker Compose version v2.x
项目初始化 ls my-backstage/ 包含 packages/、plugins/、app-config.yaml 等
开发服务器 yarn dev 启动后访问 localhost:3000 显示Backstage首页
环境就绪标志:当你成功在浏览器中看到Backstage默认首页(包含“Welcome to Backstage”标题和左侧导航栏),并且终端没有报错时,说明开发环境已完全搭建成功,可以进入下一阶段的插件开发实战。