Skip to content

Commit 02c5b05

Browse files
committed
feat: 本地脚本验证
1 parent adac537 commit 02c5b05

2 files changed

Lines changed: 17 additions & 3 deletions

File tree

.cursor/skills/nutui-build-local-verify/SKILL.md

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
name: nutui-build-local-verify
3-
description: NutUI 比例缩放本地验证——默认就地覆盖:每个组件 SCSS 写回 src/packages 下同一路径(如 actionsheet/actionsheet.scss→同文件);--mirror 才写到 scale-verify/ 对照。不写 build。
3+
description: NutUI 比例缩放本地验证——写回 src/packages 下同路径组件 SCSS(跳过 src/packages/**/demo.scss 与 demos);--mirror scale-verify/不写 build。
44
disable-model-invocation: true
55
---
66

@@ -10,6 +10,8 @@ disable-model-invocation: true
1010

1111
**只做一步**:用 `scripts/px-to-scale-px-in-component-scss.cjs` 把组件 SCSS 里裸 `px` 转成 `scale-px` 等,并把结果写回磁盘。
1212

13+
**不扫描、不写入****`src/packages/<组件名>/demo.scss`**(各组件目录根下的单文件)、`**/demos/**`、路径中含 **`/demo/`**、测试与快照目录下的 `.scss`(与官方 `build.mjs` 里对 `**/demo.scss` 的 ignore 一致)。
14+
1315
- **默认(就地覆盖)**:对每个匹配的 `.scss`**读、写都是同一路径**——相对 `src/packages` 的路径不变。例如 `src/packages/actionsheet/actionsheet.scss` 转换后仍写回该文件,不会改到别的目录或改名。
1416
- **`--mirror`**:不写源码;结果写到 **`scale-verify/<与 src/packages 相同的相对路径>`**(例如 `scale-verify/actionsheet/actionsheet.scss`),便于 diff。
1517

@@ -19,6 +21,14 @@ disable-model-invocation: true
1921

2022
**nutui-react 仓库根目录** 执行。**务必先 commit / stash**,用完 `git restore src/packages``git checkout -- src/packages` 恢复。
2123

24+
若只需还原 **`src/packages/<组件>/demo.scss`**(当前脚本已跳过;若曾被旧版本误改):
25+
26+
```bash
27+
find src/packages -name 'demo.scss' -exec git restore -- {} \;
28+
```
29+
30+
**然后**在仓库根执行验证:
31+
2232
```bash
2333
pnpm run verify-scale
2434
```

.cursor/skills/nutui-build-local-verify/scripts/verify-scale-generation.mjs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
#!/usr/bin/env node
22
/**
3-
* 默认:每个文件读自且写回 src/packages 下同一路径(如 …/actionsheet/actionsheet.scss)。
4-
* 不包含 build;自行 git diff / 恢复即可。
3+
* 本地验证:默认就地写回 src/packages 下同一路径的组件 .scss(如 …/actionsheet/actionsheet.scss)。
4+
* 跳过 src/packages/**/demo.scss、demos、测试与快照(与 build.mjs ignore 一致)。
5+
* --mirror 只写 scale-verify/;不包含 build;自行 git diff / 恢复即可。
56
*/
67
import fs from 'node:fs/promises'
78
import path from 'path'
@@ -32,6 +33,9 @@ function isScssFile(name) {
3233

3334
function shouldSkip(relPath) {
3435
const p = relPath.replaceAll('\\', '/')
36+
// 与 build.mjs 的 ignore 一致:**/demo.scss 不参与 px→scale 写回
37+
if (path.posix.basename(p) === 'demo.scss') return true
38+
if (p.includes('/demo/')) return true
3539
if (p.includes('/demos/')) return true
3640
if (p.includes('/__test__/')) return true
3741
if (p.includes('/__tests__/')) return true

0 commit comments

Comments
 (0)