chore(fe): 静态自查按作用域算 class,当场抓出第三例跨页裸奔

## 原来的检查是错的
它把所有 wxss 并成一个全局集合再看「这个 class 有没有人定义过」。
可这个项目连着栽的两次都是「有人定义过,但定义在别的页面里」:

  .post-card    留在 community.wxss,用户主页用它 → 帖子完全没样式
  .profile-row  留在 settings.wxss,「我的」用它  → 四个入口整个散架

两次它都报「✓ 全部对得上」。全局并一起看,恰好检查不出这一类问题。

## 改成按作用域
app.wxss 全局;页面 wxss 只对自己那页生效;组件 wxss 只对组件自己的节点
生效,且要开了 addGlobalClass 才看得到全局。@import 跟着递归收
(pt-icon 的图标就是这么来的)。

class 不在作用域内时分两种报法——「没有任何定义」是拼错了,
「只定义在 xxx.wxss」是跨页借用,后者直接把定义位置指出来。

## 跑起来当场又抓到一个
pages/relations 的关注按钮 .follow-btn / .follow-btn.on 只定义在
community.wxss —— 关注/粉丝列表里那个按钮一直是裸的。已提到 app.wxss。

## 自测过
往 learn.wxml 塞一个只在 decorate.wxss 里定义的 class,确认报错并指对了
位置,再还原确认恢复绿。不然这检查本身就是个装饰。

脚本从临时目录挪进 pets-fe/scripts/check.js(原来只活在会话的临时目录里,
会话一结束就没了),路径改成相对自己。scripts/ 加进 packOptions.ignore,
不进小程序包体。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Blizzard
2026-07-30 08:30:59 +08:00
parent 6d49d28e1a
commit 09322ecbec
4 changed files with 139 additions and 5 deletions
+8
View File
@@ -419,3 +419,11 @@ page{scrollbar-width:none;-ms-overflow-style:none}
.pr-label{flex:1;min-width:0}
.pr-val{color:var(--muted);font-weight:var(--fw);font-size:var(--fs-sm)}
.pr-arrow{color:var(--muted2);display:flex;align-items:center;flex:none}
/* ===== 关注按钮 =====
社区列表和关注/粉丝列表都在用。同上:两页共用的就不能留在任一页的 wxss 里 */
.follow-btn{
flex:none;font-size:var(--fs-cap);font-weight:var(--fw-b);padding:6rpx var(--sp-3);border-radius:var(--r-full);
color:var(--primary-dark);background:var(--primary-soft);border:1rpx solid var(--primary-line);
}
.follow-btn.on{color:var(--muted);background:#F4F1EC;border-color:var(--line)}