2. Backstage环境搭建:Node.js与Yarn安装、Backstage CLI初始化、本地开发环境配置

搭建稳定的本地开发环境是进行Backstage插件调试的第一步。本章将指导你完成从基础运行时安装到CLI项目初始化的全流程,确保环境基线一致,避免因工具链差异导致的调试问题。

2.1 环境依赖概览

Backstage基于Node.js生态构建,其核心依赖项及推荐版本如下表所示。请务必使用LTS(长期支持)版本,避免因运行时版本不兼容导致构建失败。

依赖项 推荐版本 用途说明
Node.js 18.x LTS 或 20.x LTS JavaScript运行时,Backstage后端及插件运行基础
Yarn 1.22.x (Classic) 包管理器,Backstage官方使用Yarn Classic管理依赖与工作区
Git 2.x 及以上 版本控制,Backstage CLI初始化需从模板仓库拉取代码
Docker(可选) 24.x 及以上 本地数据库(PostgreSQL)与插件容器化调试
⚠ 版本陷阱: 不要使用 Node.js 21.x 或 Yarn 2+(Berry)版本。Backstage 的依赖解析与 Yarn Classic 的 node_modules 结构深度绑定,使用 Berry 可能导致插件安装失败或运行时模块找不到。

2.2 Node.js 与 Yarn 安装步骤

以下步骤适用于 macOS / Linux / Windows(WSL2)环境。推荐使用版本管理器安装,便于后续切换版本。

  1. 安装 Node.js(使用 nvm)
    # 安装 nvm(Node Version Manager)
    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
    
    # 重新加载终端配置
    source ~/.bashrc
    
    # 安装并切换到 Node.js 18 LTS
    nvm install 18
    nvm use 18
    
    # 验证版本
    node --version   # 应输出 v18.20.x 或类似
    npm --version    # 应输出 10.x
  2. 安装 Yarn Classic
    # 通过 npm 全局安装 Yarn Classic
    npm install -g yarn@1.22.22
    
    # 验证版本
    yarn --version   # 应输出 1.22.22
  3. 验证核心工具链
    # 检查 Git 可用性
    git --version
    
    # 检查 Yarn 是否使用正确的 Node.js 版本
    yarn node --version
💡 提示: 如果你使用 Windows,强烈建议启用 WSL2(Windows Subsystem for Linux)并在 Ubuntu 发行版中执行上述命令。这可以避免 Windows 环境下路径分隔符与符号链接兼容性问题。

2.3 Backstage CLI 初始化

Backstage 官方提供了 @backstage/create-app 脚手架工具,用于快速生成标准项目结构。初始化过程将自动创建包含核心后端、前端应用及插件目录的 monorepo 工作区。

# 使用 npx 直接运行创建命令(无需全局安装)
npx @backstage/create-app@latest --skip-install

# 在交互式提示中输入应用名称,例如:my-service-catalog
# 输入:my-service-catalog

# 进入项目目录
cd my-service-catalog

# 安装依赖(首次安装耗时较长,约 3-5 分钟)
yarn install
📌 关键参数说明:
  • --skip-install:跳过自动 yarn install,让你先检查生成的项目结构后再手动安装,便于排查网络或版本问题。
  • 初始化完成后,项目根目录下会生成 packages/(含 backend、app)和 plugins/ 目录。

2.4 本地开发环境配置

初始化完成后,需要对本地开发环境进行三项关键配置:应用配置、数据库连接与插件发现路径。

2.4.1 应用配置(app-config.yaml)

编辑项目根目录下的 app-config.yaml,设置基础信息与后端代理地址:

app:
  title: 服务目录平台
  baseUrl: http://localhost:3000

backend:
  baseUrl: http://localhost:7007
  listen:
    port: 7007
  database:
    client: better-sqlite3
    connection: ':memory:'
    # 生产环境建议切换为 PostgreSQL:
    # client: pg
    # connection:
    #   host: localhost
    #   port: 5432
    #   user: backstage
    #   password: secret
    #   database: backstage

2.4.2 插件发现路径配置

在 packages/app/package.json 和 packages/backend/package.json 中,Backstage 会自动扫描 plugins/ 目录下的本地插件。如需添加新插件路径,修改 bundledPlugins 或 dynamicPlugins 配置:

// packages/backend/package.json 片段
"bundledPlugins": [
  ...require('../../plugins/my-plugin/package.json').backstage.plugin
]

2.4.3 启动开发服务器

# 同时启动前端(:3000)和后端(:7007)
yarn dev

# 或分别启动(调试插件时更常用)
# 终端1:后端
cd packages/backend
yarn start

# 终端2:前端
cd packages/app
yarn start
⚠ 端口冲突: 如果 3000 或 7007 端口被占用,可以在 app-config.yaml 中修改 app.baseUrl 和 backend.listen.port。修改后需同时更新 packages/app/package.json 中的 proxy 配置,确保前端代理指向正确的后端端口。

2.5 环境搭建流程总览

下图展示了从零开始搭建 Backstage 本地开发环境的完整流程,包含关键决策点与验证节点:

Backstage 本地开发环境搭建流程 安装 Node.js 18 LTS 安装 Yarn Classic 1.22 验证 node / yarn / git npx @backstage/create-app yarn install 配置 app-config.yaml yarn dev → 验证启动 前置检查清单 • 操作系统:macOS / Linux / WSL2 • 磁盘空间:至少 2GB 可用 • 网络:可访问 npmjs.org / github.com 常见失败原因 • Node.js 版本 > 20.x • Yarn 版本为 2.x / 3.x • 未安装 build-essential(Linux)

2.6 环境验证清单

完成上述步骤后,执行以下验证项,确保环境达到运行基线:

验证项 预期结果 失败处理
node --version v18.20.x 或 v20.11.x 使用 nvm 切换版本
yarn --version 1.22.22 重新 npm install -g yarn@1.22.22
yarn install 无报错 所有依赖安装成功,无 peer dependency 冲突 删除 node_modules 和 yarn.lock 后重试
yarn dev 启动 前端 :3000 与后端 :7007 均正常响应 检查端口占用,查看终端错误日志
浏览器访问 http://localhost:3000 显示 Backstage 登录/首页界面 检查 app-config.yaml 中 baseUrl 配置
💡 基线核验提示: 环境搭建完成后,建议将 yarn.lock 文件提交至版本控制。该文件锁定了所有依赖的精确版本,确保团队其他成员或 CI 环境复现一致的依赖树,这是“运行基线核验”的核心实践之一。