css2class 2.0.0 → 2.0.1
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/.github/workflows/deploy-docs.yml +53 -0
- package/.head_config.mjs +68 -0
- package/CONFIG.md +38 -1
- package/README.md +595 -633
- package/bin/class2css.js +32 -4
- package/common.css +1 -1
- package/configs/typography.config.js +1 -0
- package/docs/.vitepress/config.mjs +68 -65
- package/docs/guide/cli.md +97 -97
- package/docs/guide/config-template.md +16 -1
- package/docs/guide/config.md +129 -64
- package/docs/guide/faq.md +202 -202
- package/docs/guide/getting-started.md +86 -83
- package/docs/guide/incremental.md +164 -162
- package/docs/guide/rules-reference.md +73 -1
- package/docs/index.md +71 -68
- package/examples/weapp/README.md +15 -0
- package/examples/weapp/class2css.config.js +70 -0
- package/examples/weapp/src/placeholder.wxml +0 -0
- package/examples/weapp/styles.config.js +201 -0
- package/examples/web/README.md +25 -0
- package/examples/web/class2css.config.js +70 -0
- package/examples/web/demo.html +105 -0
- package/examples/web/src/placeholder.html +5 -0
- package/examples/web/styles.config.js +201 -0
- package/package.json +7 -2
- package/src/README.md +99 -0
- package/src/core/ConfigManager.js +440 -431
- package/src/core/FullScanManager.js +438 -430
- package/src/generators/DynamicClassGenerator.js +270 -72
- package/src/index.js +1091 -1046
- package/src/parsers/ClassParser.js +8 -2
- package/src/utils/CssFormatter.js +400 -47
- package/src/utils/UnitProcessor.js +4 -3
- package/src/watchers/ConfigWatcher.js +413 -413
- package/src/watchers/FileWatcher.js +148 -133
- package/src/writers/FileWriter.js +444 -302
- package/src/writers/UnifiedWriter.js +413 -370
- package/class2css.config.js +0 -124
- package/styles.config.js +0 -250
|
@@ -1,83 +1,86 @@
|
|
|
1
|
-
# 快速开始
|
|
2
|
-
|
|
3
|
-
你将完成:安装 → 写最小配置 → 运行生成 → 在模板中使用类名。
|
|
4
|
-
|
|
5
|
-
## 安装
|
|
6
|
-
|
|
7
|
-
```bash
|
|
8
|
-
npm install css2class --save-dev
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
:::tip 推荐
|
|
12
|
-
如果你希望用一条命令直接跑起来,也可以使用 `npx class2css`(前提是已安装到项目里)。
|
|
13
|
-
:::
|
|
14
|
-
|
|
15
|
-
## 运行方式
|
|
16
|
-
|
|
17
|
-
### 监听模式(开发)
|
|
18
|
-
|
|
19
|
-
```bash
|
|
20
|
-
#
|
|
21
|
-
npm run start
|
|
22
|
-
|
|
23
|
-
#
|
|
24
|
-
npm run dev
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
1
|
+
# 快速开始
|
|
2
|
+
|
|
3
|
+
你将完成:安装 → 写最小配置 → 运行生成 → 在模板中使用类名。
|
|
4
|
+
|
|
5
|
+
## 安装
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install css2class --save-dev
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
:::tip 推荐
|
|
12
|
+
如果你希望用一条命令直接跑起来,也可以使用 `npx class2css`(前提是已安装到项目里)。
|
|
13
|
+
:::
|
|
14
|
+
|
|
15
|
+
## 运行方式
|
|
16
|
+
|
|
17
|
+
### 监听模式(开发)
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
# 启动工具(默认监听模式;默认使用根目录配置:./class2css.config.js)
|
|
21
|
+
npm run start
|
|
22
|
+
|
|
23
|
+
# 开发模式(文件监听;默认使用根目录配置:./class2css.config.js)
|
|
24
|
+
npm run dev
|
|
25
|
+
|
|
26
|
+
# 或者显式运行内置示例(推荐)
|
|
27
|
+
npm run example:weapp
|
|
28
|
+
npm run example:web
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### 单次构建(CI/构建)
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
# 构建模式(单次扫描后退出,不监听)
|
|
35
|
+
npm run build
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
### 帮助与版本
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
npm run help
|
|
42
|
+
npm run version
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## 复制示例配置(推荐)
|
|
46
|
+
|
|
47
|
+
本项目的配置项较多(并且当前版本运行时依赖 `multiFile`、`atomicRules` 等字段),**不建议从零手写**。
|
|
48
|
+
|
|
49
|
+
直接从仓库内置示例复制即可:
|
|
50
|
+
|
|
51
|
+
- **小程序(wxss / rpx)**:复制 `examples/weapp/` 下的 `class2css.config.js` + `styles.config.js`
|
|
52
|
+
- **Web(css / px)**:复制 `examples/web/` 下的 `class2css.config.js` + `styles.config.js`
|
|
53
|
+
|
|
54
|
+
复制后你有两种启动方式:
|
|
55
|
+
|
|
56
|
+
- **方式 A(推荐)**:用 `-c` 指定示例配置(不需要改默认文件名)
|
|
57
|
+
- `class2css -c ./examples/weapp/class2css.config.js`
|
|
58
|
+
- `class2css -c ./examples/web/class2css.config.js`
|
|
59
|
+
- **方式 B**:把示例配置放到项目根目录并改名为默认配置文件
|
|
60
|
+
- `class2css.config.js`
|
|
61
|
+
- `styles.config.js`
|
|
62
|
+
|
|
63
|
+
:::tip 下一步
|
|
64
|
+
示例配置里把路径/输出都写成相对路径了,你只需要改 `multiFile.entry.path`(扫描/监听入口)和 `multiFile.output`(输出位置/文件名)即可跑通。
|
|
65
|
+
:::
|
|
66
|
+
|
|
67
|
+
## 使用类名
|
|
68
|
+
|
|
69
|
+
```html
|
|
70
|
+
<view class="m-10 w-100 h-200"></view>
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
你会得到类似(取决于单位配置):
|
|
74
|
+
|
|
75
|
+
```css
|
|
76
|
+
.m-10 { margin: 20rpx; }
|
|
77
|
+
.w-100 { width: 200rpx; }
|
|
78
|
+
.h-200 { height: 400rpx; }
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## 下一步
|
|
82
|
+
|
|
83
|
+
- 先把“语法与规则”弄清楚:阅读 [类名语法与生成规则](./concepts.md)
|
|
84
|
+
- 需要知道有哪些命令:阅读 [CLI](./cli.md)
|
|
85
|
+
- 想性能更稳:了解 [增量模式(只增不删)](./incremental.md)
|
|
86
|
+
|
|
@@ -1,162 +1,164 @@
|
|
|
1
|
-
# 增量模式(只增不删)与 appendDelta
|
|
2
|
-
|
|
3
|
-
增量模式是 Class2CSS 的高级功能,主要用于**统一文件模式(`cssOutType: 'uniFile'`)**,解决"历史输出文件累积了旧 class,不希望工具主动删除"的场景。
|
|
4
|
-
|
|
5
|
-
:::tip 什么时候值得用
|
|
6
|
-
当你的项目很大、写入频繁,或者输出文件会被外部工具/人工修改时,增量模式能显著降低“全量重写”的 I/O 成本,同时让输出更可控。
|
|
7
|
-
:::
|
|
8
|
-
|
|
9
|
-
## 适用场景
|
|
10
|
-
|
|
11
|
-
- 输出文件可能被其他工具或手动编辑修改
|
|
12
|
-
- 希望保留历史生成的 class,即使当前项目暂时未使用
|
|
13
|
-
- 需要更快的增量更新性能(appendDelta 模式)
|
|
14
|
-
|
|
15
|
-
## 配置选项
|
|
16
|
-
|
|
17
|
-
### incrementalOnlyAdd
|
|
18
|
-
|
|
19
|
-
启用"只增不删"模式。
|
|
20
|
-
|
|
21
|
-
- **类型**:`boolean`
|
|
22
|
-
- **默认值**:`false`
|
|
23
|
-
- **说明**:当设置为 `true` 时,运行期新增的 class 会被保护,不会因为后续文件变化而删除。
|
|
24
|
-
|
|
25
|
-
### incrementalBaseline
|
|
26
|
-
|
|
27
|
-
基线来源策略。
|
|
28
|
-
|
|
29
|
-
- **类型**:`string`
|
|
30
|
-
- **默认值**:`'fromOutputFile'`
|
|
31
|
-
- **可选值**:
|
|
32
|
-
- `'fromOutputFile'`:从输出文件中解析已存在的 class 作为基线
|
|
33
|
-
|
|
34
|
-
### rebuildOnStart
|
|
35
|
-
|
|
36
|
-
启动时是否重建输出文件。
|
|
37
|
-
|
|
38
|
-
- **类型**:`boolean`
|
|
39
|
-
- **默认值**:`true`
|
|
40
|
-
- **说明**:开启后会全量扫描并覆盖写出一次,输出文件会被"清理到只包含当前项目使用的 class",然后进入运行期只增不删。推荐开启,保证每次启动输出文件都是干净且排序好的。
|
|
41
|
-
|
|
42
|
-
### unusedReportLimit
|
|
43
|
-
|
|
44
|
-
未使用 class 报告的最大显示数量。
|
|
45
|
-
|
|
46
|
-
- **类型**:`number`
|
|
47
|
-
- **默认值**:`200`
|
|
48
|
-
- **说明**:启动重建时,如果发现上一版输出文件中存在但当前项目未使用的 class,会在控制台打印。此配置限制打印的示例数量,避免输出过长。
|
|
49
|
-
|
|
50
|
-
### uniFileWriteMode
|
|
51
|
-
|
|
52
|
-
统一文件写入策略。
|
|
53
|
-
|
|
54
|
-
- **类型**:`string`
|
|
55
|
-
- **默认值**:`'rewrite'`
|
|
56
|
-
- **可选值**:
|
|
57
|
-
- `'rewrite'`:统一文件写入保持兼容(防抖全量覆盖写)
|
|
58
|
-
- `'appendDelta'`:启动时写入 BASE 段 + `DELTA_START` 标记;运行期仅把新增 class 的 CSS 追加到文件末尾(更快、减少重写)
|
|
59
|
-
|
|
60
|
-
**注意**:当 `uniFileWriteMode='appendDelta'` 时,`rebuildOnStart` 必须为 `true`(否则历史垃圾无法自动清理)。
|
|
61
|
-
|
|
62
|
-
## 配置示例
|
|
63
|
-
|
|
64
|
-
```javascript
|
|
65
|
-
module.exports = {
|
|
66
|
-
multiFile: {
|
|
67
|
-
entry: {
|
|
68
|
-
// 扫描/监听入口:
|
|
69
|
-
// - string:单目录/单文件
|
|
70
|
-
// - string[]:多目录/多文件(目录与文件可混用)
|
|
71
|
-
path: "./src",
|
|
72
|
-
fileType: ["wxml", "html"],
|
|
73
|
-
},
|
|
74
|
-
output: {
|
|
75
|
-
cssOutType: "uniFile",
|
|
76
|
-
path: "./dist",
|
|
77
|
-
fileName: "styles.wxss",
|
|
78
|
-
|
|
79
|
-
// 增量"只增不删"
|
|
80
|
-
incrementalOnlyAdd: true,
|
|
81
|
-
incrementalBaseline: "fromOutputFile",
|
|
82
|
-
rebuildOnStart: true,
|
|
83
|
-
unusedReportLimit: 200,
|
|
84
|
-
|
|
85
|
-
// 统一文件写入策略
|
|
86
|
-
uniFileWriteMode: "appendDelta", // or 'rewrite'
|
|
87
|
-
},
|
|
88
|
-
},
|
|
89
|
-
};
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
## appendDelta 模式
|
|
93
|
-
|
|
94
|
-
`appendDelta` 模式提供了更快的增量更新性能,通过追加写入而非全量重写来减少文件 I/O。
|
|
95
|
-
|
|
96
|
-
### 输出文件结构
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
```css
|
|
101
|
-
/* CLASS2CSS:
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
/*
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
- `/* CLASS2CSS:
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
-
|
|
120
|
-
-
|
|
121
|
-
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
1
|
+
# 增量模式(只增不删)与 appendDelta
|
|
2
|
+
|
|
3
|
+
增量模式是 Class2CSS 的高级功能,主要用于**统一文件模式(`cssOutType: 'uniFile'`)**,解决"历史输出文件累积了旧 class,不希望工具主动删除"的场景。
|
|
4
|
+
|
|
5
|
+
:::tip 什么时候值得用
|
|
6
|
+
当你的项目很大、写入频繁,或者输出文件会被外部工具/人工修改时,增量模式能显著降低“全量重写”的 I/O 成本,同时让输出更可控。
|
|
7
|
+
:::
|
|
8
|
+
|
|
9
|
+
## 适用场景
|
|
10
|
+
|
|
11
|
+
- 输出文件可能被其他工具或手动编辑修改
|
|
12
|
+
- 希望保留历史生成的 class,即使当前项目暂时未使用
|
|
13
|
+
- 需要更快的增量更新性能(appendDelta 模式)
|
|
14
|
+
|
|
15
|
+
## 配置选项
|
|
16
|
+
|
|
17
|
+
### incrementalOnlyAdd
|
|
18
|
+
|
|
19
|
+
启用"只增不删"模式。
|
|
20
|
+
|
|
21
|
+
- **类型**:`boolean`
|
|
22
|
+
- **默认值**:`false`
|
|
23
|
+
- **说明**:当设置为 `true` 时,运行期新增的 class 会被保护,不会因为后续文件变化而删除。
|
|
24
|
+
|
|
25
|
+
### incrementalBaseline
|
|
26
|
+
|
|
27
|
+
基线来源策略。
|
|
28
|
+
|
|
29
|
+
- **类型**:`string`
|
|
30
|
+
- **默认值**:`'fromOutputFile'`
|
|
31
|
+
- **可选值**:
|
|
32
|
+
- `'fromOutputFile'`:从输出文件中解析已存在的 class 作为基线
|
|
33
|
+
|
|
34
|
+
### rebuildOnStart
|
|
35
|
+
|
|
36
|
+
启动时是否重建输出文件。
|
|
37
|
+
|
|
38
|
+
- **类型**:`boolean`
|
|
39
|
+
- **默认值**:`true`
|
|
40
|
+
- **说明**:开启后会全量扫描并覆盖写出一次,输出文件会被"清理到只包含当前项目使用的 class",然后进入运行期只增不删。推荐开启,保证每次启动输出文件都是干净且排序好的。
|
|
41
|
+
|
|
42
|
+
### unusedReportLimit
|
|
43
|
+
|
|
44
|
+
未使用 class 报告的最大显示数量。
|
|
45
|
+
|
|
46
|
+
- **类型**:`number`
|
|
47
|
+
- **默认值**:`200`
|
|
48
|
+
- **说明**:启动重建时,如果发现上一版输出文件中存在但当前项目未使用的 class,会在控制台打印。此配置限制打印的示例数量,避免输出过长。
|
|
49
|
+
|
|
50
|
+
### uniFileWriteMode
|
|
51
|
+
|
|
52
|
+
统一文件写入策略。
|
|
53
|
+
|
|
54
|
+
- **类型**:`string`
|
|
55
|
+
- **默认值**:`'rewrite'`
|
|
56
|
+
- **可选值**:
|
|
57
|
+
- `'rewrite'`:统一文件写入保持兼容(防抖全量覆盖写)
|
|
58
|
+
- `'appendDelta'`:启动时写入 BASE 段 + `DELTA_START` 标记;运行期仅把新增 class 的 CSS 追加到文件末尾(更快、减少重写)
|
|
59
|
+
|
|
60
|
+
**注意**:当 `uniFileWriteMode='appendDelta'` 时,`rebuildOnStart` 必须为 `true`(否则历史垃圾无法自动清理)。
|
|
61
|
+
|
|
62
|
+
## 配置示例
|
|
63
|
+
|
|
64
|
+
```javascript
|
|
65
|
+
module.exports = {
|
|
66
|
+
multiFile: {
|
|
67
|
+
entry: {
|
|
68
|
+
// 扫描/监听入口:
|
|
69
|
+
// - string:单目录/单文件
|
|
70
|
+
// - string[]:多目录/多文件(目录与文件可混用)
|
|
71
|
+
path: "./src",
|
|
72
|
+
fileType: ["wxml", "html"],
|
|
73
|
+
},
|
|
74
|
+
output: {
|
|
75
|
+
cssOutType: "uniFile",
|
|
76
|
+
path: "./dist",
|
|
77
|
+
fileName: "styles.wxss",
|
|
78
|
+
|
|
79
|
+
// 增量"只增不删"
|
|
80
|
+
incrementalOnlyAdd: true,
|
|
81
|
+
incrementalBaseline: "fromOutputFile",
|
|
82
|
+
rebuildOnStart: true,
|
|
83
|
+
unusedReportLimit: 200,
|
|
84
|
+
|
|
85
|
+
// 统一文件写入策略
|
|
86
|
+
uniFileWriteMode: "appendDelta", // or 'rewrite'
|
|
87
|
+
},
|
|
88
|
+
},
|
|
89
|
+
};
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
## appendDelta 模式
|
|
93
|
+
|
|
94
|
+
`appendDelta` 模式提供了更快的增量更新性能,通过追加写入而非全量重写来减少文件 I/O。
|
|
95
|
+
|
|
96
|
+
### 输出文件结构
|
|
97
|
+
|
|
98
|
+
为保证 **响应式(@media)永远不会因为“追加 base 规则”而被覆盖**,`appendDelta` 模式下输出文件会按“分区”组织(base 在前、media 在后),并带有稳定标记:
|
|
99
|
+
|
|
100
|
+
```css
|
|
101
|
+
/* CLASS2CSS:BASE_START */
|
|
102
|
+
/* base:普通规则(不含 @media) */
|
|
103
|
+
/* CLASS2CSS:BASE_END */
|
|
104
|
+
|
|
105
|
+
/* CLASS2CSS:MEDIA_START */
|
|
106
|
+
/* media:所有 @media(...) 块(始终在文件后半段) */
|
|
107
|
+
/* CLASS2CSS:MEDIA_END */
|
|
108
|
+
|
|
109
|
+
/* CLASS2CSS:DELTA_START */
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
- `/* CLASS2CSS:BASE_START */` ~ `/* CLASS2CSS:BASE_END */`:普通规则分区(不含 `@media`)
|
|
113
|
+
- `/* CLASS2CSS:MEDIA_START */` ~ `/* CLASS2CSS:MEDIA_END */`:媒体查询分区(只放 `@media`)
|
|
114
|
+
- `/* CLASS2CSS:DELTA_START */`:增量写入起点标记(用于识别该文件是 appendDelta 输出)
|
|
115
|
+
|
|
116
|
+
### 工作流程
|
|
117
|
+
|
|
118
|
+
1. **启动时**:
|
|
119
|
+
- 读取旧输出文件,提取已存在的 class 作为基线
|
|
120
|
+
- 执行全量扫描,清理上一次运行累积的多余规则
|
|
121
|
+
- 生成 BASE CSS(全量生成,压缩+排序)
|
|
122
|
+
- **分区写入**:把 BASE CSS 拆分成 `base` 与 `@media` 两段,分别写入 `BASE_*` 与 `MEDIA_*` 分区
|
|
123
|
+
- 报告未使用的 class(如果存在)
|
|
124
|
+
|
|
125
|
+
2. **运行期**:
|
|
126
|
+
- 文件变更时,仅生成“新增 class”的 CSS\n+ - **分区插入**:新增的普通规则插入到 `BASE_END` 之前;新增的 `@media` 块插入到 `MEDIA_END` 之前(保证 `@media` 永远在后)
|
|
127
|
+
- 新增的 class 自动加入 baseline,保证只增不删
|
|
128
|
+
|
|
129
|
+
### 优势
|
|
130
|
+
|
|
131
|
+
- **性能提升**:只追加新增内容,避免全量重写
|
|
132
|
+
- **减少 I/O**:文件写入次数和大小显著减少
|
|
133
|
+
- **保持基线**:BASE 段保持压缩和排序,DELTA 段追加新内容
|
|
134
|
+
|
|
135
|
+
### 注意事项
|
|
136
|
+
|
|
137
|
+
- `rebuildOnStart` 必须为 `true`,否则历史垃圾无法自动清理
|
|
138
|
+
- 建议定期重建(重启工具即可),以便清理旧规则、保证输出始终可控
|
|
139
|
+
- 如果需要完全清理,可以手动删除输出文件后重启
|
|
140
|
+
|
|
141
|
+
## 标准模式 vs 增量模式
|
|
142
|
+
|
|
143
|
+
### 标准模式(incrementalOnlyAdd: false)
|
|
144
|
+
|
|
145
|
+
- 文件变更时,会删除不再使用的 class
|
|
146
|
+
- 输出文件始终保持"干净",只包含当前使用的 class
|
|
147
|
+
- 适合:希望输出文件始终保持最小化的场景
|
|
148
|
+
|
|
149
|
+
### 增量模式(incrementalOnlyAdd: true)
|
|
150
|
+
|
|
151
|
+
- 文件变更时,只新增 class,不删除已存在的 class
|
|
152
|
+
- 输出文件可能随时间增长
|
|
153
|
+
- 适合:需要保留历史 class 或输出文件可能被外部修改的场景
|
|
154
|
+
|
|
155
|
+
## 最佳实践
|
|
156
|
+
|
|
157
|
+
1. **推荐开启 rebuildOnStart**:保证每次启动输出文件都是干净且排序好的
|
|
158
|
+
2. **定期检查未使用的 class**:关注启动时的 unused 报告
|
|
159
|
+
3. **使用 appendDelta 提升性能**:在大型项目中,appendDelta 模式可以显著提升增量更新速度
|
|
160
|
+
4. **合理设置 unusedReportLimit**:避免控制台输出过长
|
|
161
|
+
|
|
162
|
+
## 下一步
|
|
163
|
+
|
|
164
|
+
- 了解统一文件输出与基础配置:阅读 [配置指南](./config.md)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# 规则参考(当前模板已内置)
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
本页把仓库示例配置(`examples/weapp/`)里**已经实现**的规则,按使用习惯(边距 / 宽高 / 文字 / 颜色 / 布局 / 自定义)整理成一份“像 Tailwind 一样可查”的参考。
|
|
4
4
|
|
|
5
5
|
:::tip 提示
|
|
6
6
|
动态类的通用格式是:`<prefix>-<value>`。
|
|
@@ -209,6 +209,78 @@
|
|
|
209
209
|
|
|
210
210
|
</details>
|
|
211
211
|
|
|
212
|
+
### 直接颜色值写法(无需配置)
|
|
213
|
+
|
|
214
|
+
除了使用预设的颜色映射(如 `bg-red`、`color-white`),现在支持直接在 class 中写入颜色值。该功能适用于所有带 `ABBR` 的颜色族(`bg`、`color`、`bcolor` 等)。
|
|
215
|
+
|
|
216
|
+
#### Hex 颜色格式
|
|
217
|
+
|
|
218
|
+
```html
|
|
219
|
+
<!-- 3位 hex -->
|
|
220
|
+
<div class="bg-hex-fff">白色背景</div>
|
|
221
|
+
<div class="color-hex-000">黑色文字</div>
|
|
222
|
+
|
|
223
|
+
<!-- 4位 hex(含 alpha) -->
|
|
224
|
+
<div class="bg-hex-ffff">不透明白色背景</div>
|
|
225
|
+
|
|
226
|
+
<!-- 6位 hex -->
|
|
227
|
+
<div class="bg-hex-112233">深色背景</div>
|
|
228
|
+
<div class="color-hex-ff0000">红色文字</div>
|
|
229
|
+
|
|
230
|
+
<!-- 8位 hex(含 alpha) -->
|
|
231
|
+
<div class="bg-hex-ffffffff">完全不透明白色背景</div>
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
#### RGB 颜色格式
|
|
235
|
+
|
|
236
|
+
```html
|
|
237
|
+
<div class="bg-rgb-255-0-0">红色背景</div>
|
|
238
|
+
<div class="color-rgb-0-128-255">蓝色文字</div>
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
#### RGBA 颜色格式
|
|
242
|
+
|
|
243
|
+
```html
|
|
244
|
+
<!-- alpha 值支持多种写法:
|
|
245
|
+
- 两位数字 < 10:除以 10(如 05 → 0.5, 08 → 0.8)
|
|
246
|
+
- 两位数字 >= 10:除以 100 作为百分比(如 50 → 0.5, 99 → 0.99)
|
|
247
|
+
- 下划线分隔:直接替换为点(如 0_5 → 0.5)
|
|
248
|
+
- 其他格式:直接解析(如 1 → 1.0, 0.5 → 0.5)
|
|
249
|
+
-->
|
|
250
|
+
<div class="bg-rgba-0-0-0-05">半透明黑色背景(05 → 0.5)</div>
|
|
251
|
+
<div class="bg-rgba-255-0-0-0_5">半透明红色背景(0_5 → 0.5)</div>
|
|
252
|
+
<div class="bg-rgba-0-0-0-50">50% 不透明度黑色背景(50 → 0.5)</div>
|
|
253
|
+
<div class="color-rgba-0-0-0-08">80% 不透明度黑色文字(08 → 0.8)</div>
|
|
254
|
+
<div class="bg-rgba-255-0-0-99">99% 不透明度红色背景(99 → 0.99)</div>
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
#### 与响应式和 Important 组合使用
|
|
258
|
+
|
|
259
|
+
```html
|
|
260
|
+
<!-- 响应式变体 -->
|
|
261
|
+
<div class="sm:bg-hex-fff md:bg-rgb-255-0-0">响应式背景色</div>
|
|
262
|
+
|
|
263
|
+
<!-- Important 标识 -->
|
|
264
|
+
<div class="bg-hex-fff_i">强制白色背景</div>
|
|
265
|
+
<div class="!color-rgb-0-0-0">强制黑色文字</div>
|
|
266
|
+
|
|
267
|
+
<!-- 组合使用 -->
|
|
268
|
+
<div class="sm:bg-rgba-255-0-0-05_i">响应式 + Important</div>
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
:::tip 优先级说明
|
|
272
|
+
- **映射优先**:如果配置中存在对应的颜色映射(如 `bg-red`),优先使用映射值
|
|
273
|
+
- **直接值后备**:只有当映射不存在时,才会尝试解析为直接颜色值
|
|
274
|
+
- **解析失败**:如果既不是映射值,也无法解析为有效颜色值,则不会生成 CSS 规则
|
|
275
|
+
:::
|
|
276
|
+
|
|
277
|
+
:::warning 兼容性
|
|
278
|
+
- ✅ 完全兼容 Web(HTML/CSS)
|
|
279
|
+
- ✅ 完全兼容小程序(WXML/WXSS)
|
|
280
|
+
- ✅ 只使用字母、数字、下划线、短横线,无需转义
|
|
281
|
+
- ✅ 与现有颜色映射方案完全兼容,不会产生冲突
|
|
282
|
+
:::
|
|
283
|
+
|
|
212
284
|
---
|
|
213
285
|
|
|
214
286
|
## 布局 / 显示(静态类)
|