# @aphrody/eslint-plugin-m3 中文文档

规范地址：https://npmcn.com/package/%40aphrody/eslint-plugin-m3/

版本：1\.4\.7
npm 元数据更新时间：2026-10-23T03:52:41.192Z
中文译文更新时间：2026-11-09T22:23:01.659Z
软件包许可：Apache-2\.0

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40aphrody/eslint-plugin-m3
原文对照：https://npmcn.com/package/%40aphrody/eslint-plugin-m3/?lang=original
项目主页：https://github.com/aphrody-labs/bun-distribution/tree/os/packages/eslint-plugin-m3#readme
源码仓库：https://github.com/aphrody-labs/bun-distribution

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：105 kB，15 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：0 个
- 首次发布：2026-06-03T22:55:49.694Z
- 最新版本发布：2026-10-23T03:52:41.004Z
- 近 30 天下载量：1706（2026-10-06 至 2026-11-04，npm 官方下载统计）
- 已发布版本数：12（近 12 个月 12 个）

## 中文简介

使用取材-web(@aphrody/m3-react + 取材符号)的站点的林特规则——运行在本地的bun lint(jsPlugins)下.

## 安装

```sh
npm install @aphrody/eslint-plugin-m3
```

也可以使用：`pnpm add @aphrody/eslint-plugin-m3`、`yarn add @aphrody/eslint-plugin-m3`、`bun add @aphrody/eslint-plugin-m3`

## README

# @aphrody/eslint-plugin-m3 (英语)

Lint 规则,用于使用材料网络的代码(`@aphrody/m3-react` `Md*` 包装器, `md-*` 页:1 `bun lint` (单位:千美元)`jsPlugins`)或ESLint兼容主机.

```sh
bun add -d @aphrody/eslint-plugin-m3
```

```json
{
  "jsPlugins": ["./node_modules/@aphrody/eslint-plugin-m3/index.js"],
  "rules": {
    "m3/valid-icon-name": "error",
    "m3/valid-color-role": "error",
    "m3/no-sx-prop": "error",
    "m3/no-mui-prop-on-md": "error",
    "m3/no-mui-import": "warn",
    "m3/prefer-icon-token": "warn",
    "m3/require-icon-button-label": "warn",
    "m3/no-hardcoded-color": "warn"
  }
}
```

这是 `.oxlintrc.json` 页:1 `bun lint`; 数据 `jsPlugins` 路径相对于该文件。 普通的无害环境管理,不转录.

许可证: Apache-2.0(`LICENSE`) (中文(简体) ). 安装指南 : [文件/材料/立方米/INSTALL.md](https://github.com/aphrody-labs/bun-distribution/blob/os/docs/material/m3/INSTALL.md)。 。 。 .

它与对 `@aphrody/m3-codemods`: 编码器留下的 `MIGRATION-TODO`这些规则继续捕捉.

## 第(8)条

| 规则 | 职等 | 修补 | 接头 |
| --- | --- | :-: | --- |
| `m3/valid-icon-name` | 错误 | 自动 | `<md-icon>` 编号 : `<MdIcon>` 文本不是材料符号; 修正 MUI PascalCase 所剩的文本( 对照 4253 格`Delete`) (中文(简体) ). |
| `m3/valid-color-role` | 错误 | \- 说吧 | `var(--md-sys-color-<role>)` 带有角色素材-web不出(typos,MUI或Tailwind名);建议最接近的角色. |
| `m3/no-sx-prop` | 错误 | \- 说吧 | `sx` 一个 `md-*` 元素,在无效果的情况下 `className` 财务报告和审定财务报表 `--md-sys-*` 标志. |
| `m3/no-mui-prop-on-md` | 错误 | 自动 | 包装上留下的MUI道具名称(`checked` 改为 `selected`, (中文(简体) ), `title` 改为 `text`, (中文(简体) ), `open` 改为 `opened`, (中文(简体) ), `value` 改为 `activeTabIndex`) (中文(简体) ). |
| `m3/no-mui-import` | 警告( e) | \- 说吧 | 剩余 `@mui/material`, (中文(简体) ), `@mui/icons-material` 或者说 `@mui/x-*` 进口. |
| `m3/prefer-icon-token` | 警告( e) | \- 说吧 | 内入 `fontVariationSettings` 图标上; 使用 `--md-icon-fill`, (中文(简体) ), `--md-icon-wght`, (中文(简体) ), `--md-icon-grad`, (中文(简体) ), `--md-icon-opsz`。 。 。 . |
| `m3/require-icon-button-label` | 警告( e) | \- 说吧 | 无可访问名称的图标按钮( E)`aria-label`, (中文(简体) ), `aria-labelledby`, (中文(简体) ), `title`; WCAG 4.1.2. (中文(简体) ). |
| `m3/no-hardcoded-color` | 警告( e) | \- 说吧 | 硬码 `#hex` 编号 : `rgb()` 内 `style` 或者说 `sx` 一、导 言 `md-*` 元素; 使用 a `var(--md-sys-color-*)` 角色。 。 . |

`bun lint --fix` 应用两个自定义(`valid-icon-name`, (中文(简体) ), `no-mui-prop-on-md`) (中文(简体) ).

## 预设( ESLint平面配置)

```js
import m3 from "@aphrody/eslint-plugin-m3";

export default [m3.configs.recommended]; // or m3.configs.strict: every rule as an error
```

## 发展

```sh
bun test/run.ts                    # bun lint over the fixtures (every rule fires on bad, none on good)
bun scripts/sync-symbol-names.ts   # regenerate data/material-symbols-names.js
```

格莱克列表( :`data/material-symbols-names.js`)产生自 `../m3-codemods/data/material-symbols-names.json` (官方代码: `google/material-design-icons`, Apache-2.0; (中文(简体) ); `prepack` 运行同步 .

## 常见问题

### @aphrody/eslint-plugin-m3 是什么？

使用取材-web\(@aphrody/m3-react \+ 取材符号\)的站点的林特规则——运行在本地的bun lint\(jsPlugins\)下\.

### 如何安装 @aphrody/eslint-plugin-m3？

在项目目录运行 npm install @aphrody/eslint-plugin-m3，或使用 pnpm add / yarn add / bun add。

### @aphrody/eslint-plugin-m3 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @aphrody/eslint-plugin-m3 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @aphrody/eslint-plugin-m3 可以商用吗？

@aphrody/eslint-plugin-m3 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @aphrody/eslint-plugin-m3 的下载量有多少？

根据 npm 官方下载统计，@aphrody/eslint-plugin-m3 在 2026/10/06 – 2026/11/04 这 30 天内被下载 1,706 次，日均约 57 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @aphrody/eslint-plugin-m3 还在维护吗？

最新版本 1\.4\.7 发布于 2026/10/23（17 天前）；至今共发布 12 个版本，其中过去 12 个月发布了 12 个；首次发布于 2026/06/04。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

