# 插件开发

## 规则（Rules）

# 插件开发规范

## 适用对象和范围

本规范适用于所有开发可扩展Node.js插件的场景。

---

## 1. 接口规范

**规则**：插件必须实现标准接口：`init(config)`、`execute(context)`、`destroy()`。

- ✅ 正确：`module.exports = { init, execute, destroy };`
- ❌ 错误：缺少任意一个标准接口

**违反后果**：缺少标准接口导致宿主系统无法正确加载插件。

---

## 2. 隔离性规范

**规则**：禁止插件修改宿主核心逻辑，插件只能通过标准接口与宿主交互。

**违反后果**：修改宿主逻辑导致系统不稳定。

---

## 3. 兼容性规范

**规则**：禁止在未测试兼容性的情况下发布插件。

**违反后果**：未测试兼容性导致宿主系统崩溃。

## 方法（Methods）

# 插件开发方法

## 前置条件

- [ ] 已明确插件需要实现的扩展点
- [ ] 已了解宿主系统的插件接口规范

## 流程概览

分析需求 → 设计插件接口 → 编写插件代码 → 编写配置文件 → 测试验证

## 详细步骤

### 步骤1：分析插件需求
分析需求文档，确定插件需要实现的扩展点和接口规范。

### 步骤2：设计插件接口
定义插件的标准接口：`init(config)`、`execute(context)`、`destroy()`。

### 步骤3：编写插件代码
编写插件核心逻辑代码。

## 技巧（Tips）

# 插件开发技巧

## 1. 使用配置驱动插件行为

**适用场景**：插件需要支持不同配置时。

**具体做法**：在 `plugin.json` 中定义配置项，在 `init(config)` 中读取配置。

## 2. 错误隔离

**适用场景**：插件执行出错时不影响宿主系统。

**具体做法**：在 `execute` 中使用try/catch捕获所有异常，返回统一错误格式。

## 3. 常见问题速查

| 问题 | 原因 | 解决方案 |
|------|------|---------|
| 插件加载失败 | 未导出标准接口 | 检查 `module.exports` |
| 插件功能异常 | 依赖或配置错误 | 检查plugin.json配置 |
| 接口不兼容 | 宿主接口变更 | 调整导出函数签名 |
