# Nutui Build Local Verify

> NutUI 比例缩放本地验证——写回 src/packages 下同路径组件 SCSS（跳过 src/packages/**/demo.scss 与 demos）；--mirror 写 scale-verify/；不写 build。

- Skill: `jdf2e/nutui-build-local-verify` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add jdf2e/nutui-build-local-verify`
- Raw SKILL.md: https://api.skillmd.com/api/skills/jdf2e/nutui-build-local-verify/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: jdf2e (https://skillmd.com/u/jdf2e)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/jdf2e/nutui-build-local-verify

---


# NutUI Build Local Verify

## 在做什么

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

**不扫描、不写入**：**`src/packages/<组件名>/demo.scss`**（各组件目录根下的单文件）、`**/demos/**`、路径中含 **`/demo/`**、测试与快照目录下的 `.scss`（与官方 `build.mjs` 里对 `**/demo.scss` 的 ignore 一致）。

- **默认（就地覆盖）**：对每个匹配的 `.scss`，**读、写都是同一路径**——相对 `src/packages` 的路径不变。例如 `src/packages/actionsheet/actionsheet.scss` 转换后仍写回该文件，不会改到别的目录或改名。
- **`--mirror`**：不写源码；结果写到 **`scale-verify/<与 src/packages 相同的相对路径>`**（例如 `scale-verify/actionsheet/actionsheet.scss`），便于 diff。

之后是否再跑 `pnpm run build`、是否用别的工具核对，由你自行决定；本 skill **不要求** build。

## 覆盖原 SCSS（推荐）

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

若只需还原 **`src/packages/<组件>/demo.scss`**（当前脚本已跳过；若曾被旧版本误改）：

```bash
find src/packages -name 'demo.scss' -exec git restore -- {} \;
```

**然后**在仓库根执行验证：

```bash
pnpm run verify-scale
```

等价：

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

（`--in-place` / `-i` 与默认等价。）

## 报告

路径：**`scale-verify/report.json`**。覆盖模式下看 `overwriteSource === true`、`changedFileCount`、`changedFiles`。

## 其它命令

```bash
# 删除仓库根下 scale-verify/ 整目录（含 report；不还原已覆盖的 src/packages）
node .cursor/skills/nutui-build-local-verify/scripts/verify-scale-generation.mjs --clean
```

**可选**（只镜像、不覆盖源码）：

```bash
pnpm run verify-scale:mirror
```

`--mirror` 与 `--in-place` 不能同时使用。

## 核对清单

- [ ] 覆盖前已 git 可回滚
- [ ] `changedFiles` 抽样无 `scale-px(0px)`、无重复嵌套 `scale-px`
- [ ] `font-size` / `font` 未被误改（转换器会跳过）

## 给用户的一句话结论

- 脚本跑完 + `changedFileCount` + 列 2～3 个 `changedFiles`
- **覆盖的是真实源码**时，验证完用 **git 恢复**

