@winner-fed/plugin-did-you-know
Version:
Did you know WinJS?
178 lines (122 loc) • 4.43 kB
Markdown
# @winner-fed/plugin-did-you-know
> 你知道吗?WinJS 开发技巧提示插件
## 功能介绍
这是一个为 WinJS 框架提供开发技巧提示的插件。它会在你执行 `setup`、`dev`、`build` 等命令时,随机显示一个有用的开发技巧或最佳实践,帮助你更好地使用 WinJS 框架。
## 特性
- 🎯 **智能提示算法**: 避免重复显示相同的技巧,优先显示未曾提示过的内容
- 🔗 **链接支持**: 提示内容支持链接,可直接跳转到详细文档
- 📱 **多框架支持**: 支持根据不同框架和版本过滤相关技巧
- 💾 **记录缓存**: 自动记录提示历史,避免频繁重复显示
- 🎨 **终端美化**: 支持终端链接美化显示
## 安装
```bash
npm install @winner-fed/plugin-did-you-know --save-dev
```
## 使用方法
### 基本使用
在 `plugin.ts` 文件中启用插件:
```typescript
import { defineConfig } from 'winjs';
export default defineConfig({
plugins: [
// ... 其他插件
'@winner-fed/plugin-did-you-know'
]
});
```
### 触发时机
插件会在以下命令执行时自动显示技巧提示:
- `win setup` - 项目初始化时
- `win dev` - 开发服务器启动时
- `win build` - 项目构建时
### 提示示例
```bash
$ win dev
[你知道吗?] dev 模式下访问 /__win 路由,可以发现很多有用的内部信息
$ win build
[你知道吗?] 想要试试闪电般的构建速度吗?那还不赶紧一键开启 Rsbuild 构建工具:点我查看
```
## 工作原理
### 智能提示算法
1. **内容过滤**: 根据当前框架和版本过滤相关技巧
2. **优先级排序**: 优先显示未曾提示过的内容
3. **频率控制**: 每个技巧最多显示 5 次,避免过度重复
4. **时间记录**: 记录每次显示的时间,避免连续显示相同内容
### 缓存机制
插件会在 `node_modules/.cache/` 目录下创建 `did-you-know.json` 文件,记录提示历史:
```json
{
"技巧内容": {
"lastTime": 1704067200000,
"count": 2
}
}
```
## 内置技巧
插件内置了丰富的 WinJS 开发技巧,包括:
- 🛠️ **开发调试**: 如何使用 `/__win` 路由查看内部信息
- 📦 **构建优化**: MFSU、代码压缩、产物分析等技巧
- 🎨 **样式处理**: Tailwind CSS、全局样式等配置方法
- 📱 **移动端开发**: 移动端布局、视口配置等
- 🔧 **工具集成**: TypeScript、Prettier、代码检查等配置
- 🚀 **性能优化**: 代码拆分、懒加载等优化技巧
- 📋 **状态管理**: Pinia、Vuex 等状态管理方案
## 自定义技巧
你可以通过修改 `package.json` 中的 `didYouKnow` 字段来自定义技巧内容:
```json
{
"didYouKnow": [
{
"text": "你的自定义技巧内容",
"url": "https://example.com/docs",
"majorVersion": 0,
"framework": ["win"]
}
]
}
```
### 字段说明
- `text`: 技巧的文本内容(支持模板变量)
- `url`: 可选,相关文档链接
- `majorVersion`: 可选,适用的主版本号
- `framework`: 可选,适用的框架列表
### 模板变量
技巧内容支持以下模板变量:
- `%%frameworkName%%`: 当前框架名称(如 WinJS)
- `%%frameworkCliName%%`: 当前框架CLI名称(如 win)
## 配置选项
当前版本插件无需额外配置,开箱即用。
## 开发指南
### 本地开发
```bash
# 安装依赖
npm install
# 开发模式
npm run dev
# 构建
npm run build
```
### 目录结构
```
packages/plugin-did-you-know/
├── src/
│ └── plugin.ts # 插件主文件
├── compiled/ # 编译后的依赖
├── package.json # 包配置和技巧数据
└── README.md # 说明文档
```
## 常见问题
**Q: 如何禁用技巧提示?**
A: 从 `plugin.ts` 中移除该插件即可。
**Q: 技巧显示频率如何控制?**
A: 插件内置智能算法,每个技巧最多显示 5 次,会自动避免重复显示。
**Q: 如何清除提示历史?**
A: 删除 `node_modules/.cache/did-you-know.json` 文件即可重置。
**Q: 提示内容支持多语言吗?**
A: 当前版本仅支持中文,未来版本可能会支持多语言。
## 许可证
MIT License
## 贡献指南
欢迎提交问题和功能建议到 [GitHub Issues](https://github.com/winner-fed/winjs-plugins/issues)。
---
让 WinJS 开发更加高效!🚀