# 📦 发布指南

## 🚀 发布到 NPM

### 1. 发布前检查

```bash
# 检查所有必要文件是否存在
npm run pre-publish

# 构建项目
npm run build

# 检查将要发布的文件
npm pack --dry-run
```

### 2. 发布步骤

```bash
# 登录 NPM（如果还没登录）
npm login

# 发布包
npm publish

# 或者发布到特定标签
npm publish --tag beta
```

### 3. 版本管理

```bash
# 更新版本号
npm version patch   # 1.0.0 -> 1.0.1
npm version minor   # 1.0.0 -> 1.1.0
npm version major   # 1.0.0 -> 2.0.0

# 发布新版本
npm publish
```

## 📁 包含的文件

### 核心文件
- `dist/` - 构建产物
- `loader/` - Web Components 加载器
- `src/` - 源代码（供开发者参考）

### 框架适配层
- `react/` - React 适配层
- `angular/` - Angular 适配层
- `vue/` - Vue 适配层

### 文档和示例
- `README.md` - 项目说明
- `USAGE.md` - 使用指南
- `examples/` - 使用示例
- `LICENSE` - 许可证

### 配置文件
- `stencil.config.ts` - Stencil 配置
- `tsconfig.json` - TypeScript 配置

## 🔧 开发环境设置

### 安装依赖
```bash
npm install
```

### 开发模式
```bash
npm run dev
# 或
npm start
```

### 构建
```bash
npm run build
```

### 测试
```bash
npm test
```

## 📋 发布检查清单

- [ ] 所有测试通过
- [ ] 构建成功
- [ ] 版本号已更新
- [ ] CHANGELOG 已更新
- [ ] README 已更新
- [ ] 所有必要文件都在 `files` 字段中
- [ ] 已登录 NPM
- [ ] 包名可用

## 🎯 使用方式

### 安装
```bash
npm install hxy-stencil-ai-chat
```

### 基本使用
```javascript
import { defineCustomElements } from 'hxy-stencil-ai-chat/loader';
defineCustomElements();
```

### 框架使用
```javascript
// React
import { AiChat } from 'hxy-stencil-ai-chat/react';

// Angular
import { AiChat } from 'hxy-stencil-ai-chat/angular';

// Vue
import { AiChat } from 'hxy-stencil-ai-chat/vue';
```

## 🐛 常见问题

### 1. 发布失败
- 检查是否已登录：`npm whoami`
- 检查包名是否可用：`npm view hxy-stencil-ai-chat`
- 检查版本号是否已存在

### 2. 文件缺失
- 运行 `npm run build` 确保构建完成
- 检查 `files` 字段配置
- 运行 `npm pack --dry-run` 查看实际包含的文件

### 3. 依赖问题
- 检查 `peerDependencies` 配置
- 确保所有运行时依赖都在 `dependencies` 中
- 开发依赖放在 `devDependencies` 中

## 📞 支持

如有问题，请提交 Issue 或联系维护者。
