Backstage包侦探:5秒内找出前端插件

大家好!今天,我们将深入探索Backstage庞大的monorepo森林,主题是:“如何判断这个包是否是前端插件?” 🕵️‍♂️

Backstage由无数个包组成,初次接触时很容易迷失方向。但是,只要掌握几个明确的“线索”,您就能在短短5秒内识别出哪个包是负责用户界面的前端插件。现在就揭示这个秘诀!💡


🏗️ 识别前端插件的3步公式

在调查Backstage包时,您只需检查以下3个要素。它们是证明其为前端插件的决定性证据。

1. package.json的名称和依赖项 📦

首先要检查的是包根目录下的package.json文件。

  • 命名规则: 大多数官方和社区插件都遵循@backstage/plugin-<名称>的格式。与后端插件不同,它们的名字后面没有-backend。
  • 核心依赖项: 如果dependencies列表中包含@backstage/core-plugin-api或@backstage/core-components,那么它有99%的可能是用于构建UI并与Backstage核心API通信的前端包!

2. src/plugin.ts文件的存在 🧩

前端插件使用特定函数将自身注册到Backstage系统中。打开src文件夹中的plugin.ts(或类似名称的文件)。

  • createPlugin函数: 检查代码中是否调用了createPlugin函数。此函数定义了插件的身份,并封装了路由(Route)或API等。

TypeScript

// 示例: src/plugin.ts
import { createPlugin } from '@backstage/core-plugin-api';

export const myFrontendPlugin = createPlugin({
  id: 'my-plugin',
  // ... 插件配置
});

3. 扩展(Extensions)的定义 🎨

前端插件必须显示在屏幕上,因此它们定义了将暴露给用户的“组件”。这些被称为扩展(Extensions)

  • createRoutableExtension或createComponentExtension: 如果使用了这些函数,则意味着它提供了将在特定URL路径上显示或嵌入到其他页面中的UI组件。

🔍 从文件夹结构看前端插件的特点

除了形式化的代码,文件夹结构本身也与后端插件截然不同。

文件夹/文件 作用 特点
src/components/ UI组件 充满了React(tsx)文件。⚛️
src/api/ 前端API定义 包含与后端通信的接口。
src/routes.ts 路由引用 包含插件内部导航的路径信息。📍
src/index.ts 外部暴露通道 导出供其他包使用的组件和API。

💡 实战练习:与后端插件有何不同?

为了避免混淆,让我们明确区分与后端插件的不同之处!

  • 后端插件: 名称以-backend结尾,有src/service/router.ts,并使用createRouter或add(import(…))形式提供Express路由器。⚙️
  • 前端插件: 名称简洁,有src/plugin.ts,并提供React组件。🎨

🏁 结论:识别的核心是createPlugin

在Backstage包中查找前端插件最直接、最确定的方法是检查src文件夹中是否调用了createPlugin函数。因为这是插件集成到Backstage前端应用程序的官方“通行证”。

现在,无论您查看哪个包,都能够清楚地区分它是负责渲染屏幕还是在后台处理数据了!🚀



Comments

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注