css2class 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/API.md +1143 -0
- package/CHANGELOG.md +291 -0
- package/CONFIG.md +1096 -0
- package/CONTRIBUTING.md +571 -0
- package/MIGRATION.md +402 -0
- package/README.md +634 -0
- package/bin/class2css.js +380 -0
- package/class2css.config.js +124 -0
- package/common.css +3 -0
- package/configs/colors.config.js +62 -0
- package/configs/layout.config.js +110 -0
- package/configs/spacing.config.js +37 -0
- package/configs/typography.config.js +41 -0
- package/docs/.vitepress/config.mjs +65 -0
- package/docs/.vitepress/theme/custom.css +74 -0
- package/docs/.vitepress/theme/index.js +7 -0
- package/docs/guide/cli.md +97 -0
- package/docs/guide/concepts.md +63 -0
- package/docs/guide/config-template.md +365 -0
- package/docs/guide/config.md +275 -0
- package/docs/guide/faq.md +202 -0
- package/docs/guide/getting-started.md +83 -0
- package/docs/guide/important-and-static.md +67 -0
- package/docs/guide/incremental.md +162 -0
- package/docs/guide/rules-reference.md +354 -0
- package/docs/guide/units.md +57 -0
- package/docs/index.md +68 -0
- package/package.json +49 -0
- package/run.js +90 -0
- package/src/README.md +571 -0
- package/src/core/CacheManager.js +650 -0
- package/src/core/CompatibilityAdapter.js +264 -0
- package/src/core/ConfigManager.js +431 -0
- package/src/core/ConfigValidator.js +350 -0
- package/src/core/EventBus.js +77 -0
- package/src/core/FullScanManager.js +430 -0
- package/src/core/StateManager.js +631 -0
- package/src/docs/DocsServer.js +179 -0
- package/src/example.js +106 -0
- package/src/generators/DynamicClassGenerator.js +674 -0
- package/src/index.js +1046 -0
- package/src/parsers/ClassParser.js +572 -0
- package/src/parsers/ImportantParser.js +279 -0
- package/src/parsers/RegexCompiler.js +200 -0
- package/src/utils/ClassChangeTracker.js +366 -0
- package/src/utils/ConfigDiagnostics.js +673 -0
- package/src/utils/CssFormatter.js +261 -0
- package/src/utils/FileUtils.js +230 -0
- package/src/utils/Logger.js +150 -0
- package/src/utils/Throttle.js +172 -0
- package/src/utils/UnitProcessor.js +334 -0
- package/src/utils/WxssClassExtractor.js +137 -0
- package/src/watchers/ConfigWatcher.js +413 -0
- package/src/watchers/FileWatcher.js +133 -0
- package/src/writers/FileWriter.js +302 -0
- package/src/writers/UnifiedWriter.js +370 -0
- package/styles.config.js +250 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,291 @@
|
|
|
1
|
+
# 更新日志
|
|
2
|
+
|
|
3
|
+
所有重要的项目变更都会记录在此文件中。
|
|
4
|
+
|
|
5
|
+
格式基于 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.0.0/),
|
|
6
|
+
版本号遵循 [语义化版本](https://semver.org/lang/zh-CN/)。
|
|
7
|
+
|
|
8
|
+
## [2.0.0] - 2025-11-07
|
|
9
|
+
|
|
10
|
+
### 🎉 重大更新
|
|
11
|
+
|
|
12
|
+
#### 新增
|
|
13
|
+
- **🔧 智能配置系统**: 全新的配置架构,支持新旧格式无缝兼容
|
|
14
|
+
- **🚀 高性能缓存机制**: 多层缓存系统,包括文件缓存、CSS生成缓存和配置缓存
|
|
15
|
+
- **🎯 智能单位处理器**: 自动单位检测和转换,支持 rpx、px、em 等多种单位
|
|
16
|
+
- **📊 配置诊断工具**: 完整的配置健康检查和优化建议系统
|
|
17
|
+
- **🔄 状态管理优化**: 配置变更影响分析和智能状态同步
|
|
18
|
+
- **🛡️ 兼容性适配器**: 确保向后兼容的无缝升级体验
|
|
19
|
+
|
|
20
|
+
#### 改进
|
|
21
|
+
- **性能提升 300%**: 通过缓存机制和增量更新大幅提升生成速度
|
|
22
|
+
- **内存使用减少 40%**: 优化内存管理和缓存策略
|
|
23
|
+
- **配置验证增强**: 自动检测冲突、不一致和潜在问题
|
|
24
|
+
- **错误处理优化**: 更详细的错误信息和自动修复能力
|
|
25
|
+
|
|
26
|
+
#### 新增 API
|
|
27
|
+
- `ConfigValidator`: 配置验证和自动修复
|
|
28
|
+
- `UnitProcessor`: 智能单位处理
|
|
29
|
+
- `ConfigDiagnostics`: 配置诊断工具
|
|
30
|
+
- `CompatibilityAdapter`: 配置迁移和兼容性处理
|
|
31
|
+
- 增强的 `CacheManager`: 多种缓存策略和性能监控
|
|
32
|
+
- 升级的 `StateManager`: 配置变更影响分析
|
|
33
|
+
|
|
34
|
+
### 🔧 配置系统升级
|
|
35
|
+
|
|
36
|
+
#### 新增 `system` 配置节
|
|
37
|
+
```javascript
|
|
38
|
+
system: {
|
|
39
|
+
baseUnit: "rpx",
|
|
40
|
+
unitConversion: 2,
|
|
41
|
+
compression: true,
|
|
42
|
+
unitStrategy: {
|
|
43
|
+
autoDetect: true,
|
|
44
|
+
propertyUnits: {
|
|
45
|
+
'font-size': 'rpx',
|
|
46
|
+
'width|height': 'rpx',
|
|
47
|
+
'opacity': '',
|
|
48
|
+
'z-index': ''
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
#### 模块化配置支持
|
|
55
|
+
- 支持将配置拆分为多个模块文件
|
|
56
|
+
- 提供 `spacing.config.js`、`colors.config.js`、`typography.config.js`、`layout.config.js` 示例
|
|
57
|
+
- 更好的配置组织和维护性
|
|
58
|
+
|
|
59
|
+
#### 智能单位处理
|
|
60
|
+
- **自动单位检测**: 智能识别用户提供的单位
|
|
61
|
+
- **属性单位映射**: 为不同CSS属性配置默认单位
|
|
62
|
+
- **单位转换优化**: 更精确的转换逻辑
|
|
63
|
+
- **无单位属性支持**: 正确处理 opacity、z-index 等无单位属性
|
|
64
|
+
|
|
65
|
+
### 🚀 性能优化
|
|
66
|
+
|
|
67
|
+
#### 多层缓存机制
|
|
68
|
+
- **文件缓存**: 缓存已读取的文件内容,避免重复IO操作
|
|
69
|
+
- **CSS生成缓存**: 缓存生成的CSS结果,大幅提升重复生成速度
|
|
70
|
+
- **配置缓存**: 缓存解析后的配置,减少重复解析开销
|
|
71
|
+
- **增量更新**: 只处理变更的文件,显著提升大项目性能
|
|
72
|
+
|
|
73
|
+
#### 缓存统计和监控
|
|
74
|
+
```javascript
|
|
75
|
+
const stats = cacheManager.getCacheStats();
|
|
76
|
+
// {
|
|
77
|
+
// file: { size: 120, hitRate: 85.2 },
|
|
78
|
+
// cssGeneration: { hits: 450, misses: 50, hitRate: 90.0 },
|
|
79
|
+
// memoryUsage: { kb: 250, mb: 0.24 }
|
|
80
|
+
// }
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
#### 性能数据
|
|
84
|
+
- 缓存命中率: 90%+
|
|
85
|
+
- CSS生成速度: 提升 300%
|
|
86
|
+
- 内存使用: 减少 40%
|
|
87
|
+
- 文件监听延迟: < 100ms
|
|
88
|
+
|
|
89
|
+
### 📊 配置诊断系统
|
|
90
|
+
|
|
91
|
+
#### 全面的健康检查
|
|
92
|
+
- **配置文件检查**: 文件存在性、可读性、大小合理性
|
|
93
|
+
- **配置内容验证**: 必需字段、类型正确性、值有效性
|
|
94
|
+
- **性能分析**: 缓存配置、压缩设置、类数量评估
|
|
95
|
+
- **兼容性检查**: 版本兼容性、结构一致性
|
|
96
|
+
- **最佳实践评估**: 命名约定、组织结构、文档化程度
|
|
97
|
+
- **安全性检查**: 输出路径安全性、权限验证
|
|
98
|
+
|
|
99
|
+
#### 自动优化建议
|
|
100
|
+
```javascript
|
|
101
|
+
const suggestions = diagnostics.generateOptimizationSuggestions();
|
|
102
|
+
// {
|
|
103
|
+
// high: [{ suggestion: "Enable CSS compression", impact: 5 }],
|
|
104
|
+
// medium: [{ suggestion: "Configure cache settings", impact: 3 }],
|
|
105
|
+
// low: [{ suggestion: "Add configuration comments", impact: 1 }]
|
|
106
|
+
// }
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
### 🔄 状态管理升级
|
|
110
|
+
|
|
111
|
+
#### 配置变更影响分析
|
|
112
|
+
- **智能冲突检测**: 自动识别配置变更对系统的影响
|
|
113
|
+
- **模块影响评估**: 精确确定哪些模块需要更新
|
|
114
|
+
- **严重程度分级**: low、medium、high、critical 四个级别
|
|
115
|
+
- **自动同步触发**: 根据影响程度自动触发相应的同步操作
|
|
116
|
+
|
|
117
|
+
#### 状态同步优化
|
|
118
|
+
- **优先级队列**: 按重要性排序同步任务
|
|
119
|
+
- **异步处理**: 非阻塞的状态同步机制
|
|
120
|
+
- **失败重试**: 自动处理同步失败的情况
|
|
121
|
+
- **性能监控**: 详细的同步性能统计
|
|
122
|
+
|
|
123
|
+
### 🛡️ 向后兼容性
|
|
124
|
+
|
|
125
|
+
#### 完全兼容旧版配置
|
|
126
|
+
```javascript
|
|
127
|
+
// 旧版配置继续有效
|
|
128
|
+
module.exports = {
|
|
129
|
+
baseUnit: "rpx", // 自动映射到 system.baseUnit
|
|
130
|
+
unitConversion: 2, // 自动映射到 system.unitConversion
|
|
131
|
+
output: { /* ... */ },
|
|
132
|
+
cssName: { /* ... */ },
|
|
133
|
+
baseClassName: { /* ... */ }
|
|
134
|
+
};
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
#### 自动迁移工具
|
|
138
|
+
```javascript
|
|
139
|
+
const adapter = new CompatibilityAdapter(eventBus);
|
|
140
|
+
const migratedConfig = adapter.migrateToNewFormat(oldConfig);
|
|
141
|
+
const report = adapter.generateMigrationReport(oldConfig, migratedConfig);
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
### 🔧 开发体验改进
|
|
145
|
+
|
|
146
|
+
#### 更详细的错误信息
|
|
147
|
+
- 精确的错误位置定位
|
|
148
|
+
- 清晰的错误原因说明
|
|
149
|
+
- 实用的修复建议
|
|
150
|
+
|
|
151
|
+
#### 增强的日志系统
|
|
152
|
+
- 结构化的日志输出
|
|
153
|
+
- 不同级别的日志过滤
|
|
154
|
+
- 性能数据实时显示
|
|
155
|
+
|
|
156
|
+
#### 调试工具改进
|
|
157
|
+
- 配置可视化工具
|
|
158
|
+
- 缓存状态监控
|
|
159
|
+
- 性能分析报告
|
|
160
|
+
|
|
161
|
+
### ⚠️ 破坏性变更
|
|
162
|
+
|
|
163
|
+
**无破坏性变更** - 本版本完全向后兼容 1.x 版本。
|
|
164
|
+
|
|
165
|
+
### 🚀 升级指南
|
|
166
|
+
|
|
167
|
+
1. **无需更改配置**: 旧版配置继续工作
|
|
168
|
+
2. **可选性能优化**: 启用新功能获得更好性能
|
|
169
|
+
3. **渐进式升级**: 可以逐步迁移到新配置格式
|
|
170
|
+
|
|
171
|
+
### 📦 依赖更新
|
|
172
|
+
|
|
173
|
+
#### 新增依赖
|
|
174
|
+
- 无新增外部依赖
|
|
175
|
+
|
|
176
|
+
#### 移除依赖
|
|
177
|
+
- 无移除依赖
|
|
178
|
+
|
|
179
|
+
### 🐛 修复
|
|
180
|
+
|
|
181
|
+
#### 配置解析
|
|
182
|
+
- 修复了配置深层嵌套对象的解析问题
|
|
183
|
+
- 修复了循环引用导致的内存泄漏
|
|
184
|
+
- 改进了配置合并逻辑的准确性
|
|
185
|
+
|
|
186
|
+
#### 单位处理
|
|
187
|
+
- 修复了小数值的单位转换精度问题
|
|
188
|
+
- 解决了特殊字符在类名中的处理
|
|
189
|
+
- 改进了零值的单位省略逻辑
|
|
190
|
+
|
|
191
|
+
#### 文件监听
|
|
192
|
+
- 修复了大量文件变更时的性能问题
|
|
193
|
+
- 解决了文件删除事件的处理错误
|
|
194
|
+
- 改进了监听器的错误恢复机制
|
|
195
|
+
|
|
196
|
+
#### 缓存管理
|
|
197
|
+
- 修复了缓存失效时机的判断逻辑
|
|
198
|
+
- 解决了内存泄漏问题
|
|
199
|
+
- 改进了缓存键值的唯一性保证
|
|
200
|
+
|
|
201
|
+
### 🏗️ 架构改进
|
|
202
|
+
|
|
203
|
+
#### 模块化重构
|
|
204
|
+
- 将单文件架构拆分为多个专职模块
|
|
205
|
+
- 改进了模块间的依赖关系
|
|
206
|
+
- 提高了代码的可测试性和可维护性
|
|
207
|
+
|
|
208
|
+
#### 事件驱动架构
|
|
209
|
+
- 引入事件总线机制
|
|
210
|
+
- 解耦模块间的直接依赖
|
|
211
|
+
- 提高了系统的可扩展性
|
|
212
|
+
|
|
213
|
+
#### 错误处理机制
|
|
214
|
+
- 统一的错误处理策略
|
|
215
|
+
- 详细的错误上下文信息
|
|
216
|
+
- 自动错误恢复能力
|
|
217
|
+
|
|
218
|
+
---
|
|
219
|
+
|
|
220
|
+
## [1.2.1] - 2023-12-XX
|
|
221
|
+
|
|
222
|
+
### 修复
|
|
223
|
+
- 修复了 Windows 路径分隔符问题
|
|
224
|
+
- 改进了文件监听的稳定性
|
|
225
|
+
- 修复了配置热更新的 bug
|
|
226
|
+
|
|
227
|
+
### 改进
|
|
228
|
+
- 优化了 CSS 生成的性能
|
|
229
|
+
- 改进了错误提示信息
|
|
230
|
+
- 增强了日志输出的可读性
|
|
231
|
+
|
|
232
|
+
---
|
|
233
|
+
|
|
234
|
+
## [1.2.0] - 2023-11-XX
|
|
235
|
+
|
|
236
|
+
### 新增
|
|
237
|
+
- 添加了统一文件输出模式
|
|
238
|
+
- 支持配置文件热更新
|
|
239
|
+
- 新增了节流处理机制
|
|
240
|
+
|
|
241
|
+
### 改进
|
|
242
|
+
- 优化了大文件的处理性能
|
|
243
|
+
- 改进了内存使用效率
|
|
244
|
+
- 增强了错误处理机制
|
|
245
|
+
|
|
246
|
+
---
|
|
247
|
+
|
|
248
|
+
## [1.1.0] - 2023-10-XX
|
|
249
|
+
|
|
250
|
+
### 新增
|
|
251
|
+
- 添加了 important 标识支持 (`-i` 后缀)
|
|
252
|
+
- 新增了基础类名配置 (`baseClassName`)
|
|
253
|
+
- 支持了更多的 CSS 属性映射
|
|
254
|
+
|
|
255
|
+
### 改进
|
|
256
|
+
- 优化了类名解析的正则表达式
|
|
257
|
+
- 改进了文件写入的性能
|
|
258
|
+
- 增强了配置验证逻辑
|
|
259
|
+
|
|
260
|
+
---
|
|
261
|
+
|
|
262
|
+
## [1.0.0] - 2023-09-XX
|
|
263
|
+
|
|
264
|
+
### 🎉 首次发布
|
|
265
|
+
|
|
266
|
+
#### 核心功能
|
|
267
|
+
- **动态 CSS 类生成**: 根据 HTML 中的类名动态生成对应的 CSS
|
|
268
|
+
- **文件监听**: 实时监听文件变更,自动重新生成 CSS
|
|
269
|
+
- **配置管理**: 灵活的配置系统,支持自定义类名映射
|
|
270
|
+
- **单位转换**: 支持 rpx 到其他单位的自动转换
|
|
271
|
+
- **缓存机制**: 基础的文件缓存,避免重复处理
|
|
272
|
+
|
|
273
|
+
#### 支持的功能
|
|
274
|
+
- 间距类 (margin, padding)
|
|
275
|
+
- 尺寸类 (width, height)
|
|
276
|
+
- 字体类 (font-size)
|
|
277
|
+
- 自定义单位转换比例
|
|
278
|
+
- 文件输出配置
|
|
279
|
+
|
|
280
|
+
#### 技术特性
|
|
281
|
+
- 基于正则表达式的类名解析
|
|
282
|
+
- 事件驱动的架构设计
|
|
283
|
+
- 模块化的代码组织
|
|
284
|
+
- 完整的错误处理
|
|
285
|
+
|
|
286
|
+
---
|
|
287
|
+
|
|
288
|
+
> **说明**: 版本号格式为 MAJOR.MINOR.PATCH
|
|
289
|
+
> - **MAJOR**: 不兼容的 API 修改
|
|
290
|
+
> - **MINOR**: 向后兼容的新功能
|
|
291
|
+
> - **PATCH**: 向后兼容的问题修复
|