ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

如何用 react-doctor 在 monorepo 中用 --project 只扫描指定 workspace 包

如何用 react-doctor 在 monorepo 中用 --project 只扫描指定 workspace 包 如何用 react-doctor 在 monorepo 中用 --project 只扫描指定 workspace 包【免费下载链接】react-doctorYour agent writes bad React. This catches it项目地址: https://gitcode.com/GitHub_Trending/re/react-doctor在 monorepo 里对整个仓库跑react-doctor所有 workspace 包都会被一起扫描并分别计分。如果你的目标只是审计某一个或某几个包——比如只关心apps/web这一侧的 React 问题或者想在 pre-commit 里只扫当前改动的包——--project标志就是为此提供的入口。本文按「执行扫描 → 指定包 → 用 JSON 报告核对范围」的顺序把这条路径走完整。前提只有一个能在 monorepo 根目录执行npx react-doctorlatest或已安装的react-doctorCLI这是 README.md 给出的标准启动方式npx react-doctorlatest指定要扫描的 workspace 包在 monorepo 根目录运行时react-doctor 会先发现 workspace 项目不加--project时多个项目会被交互选择或全部纳入。要跳过这个全量行为给-p, --project传入包名即可官方帮助中的示例是react-doctor --project modules/a,modules/b该参数的行为规则来自 select-projects.ts 和 CLI 帮助文本单个包名--project web按包名或所在目录名匹配逗号分隔列表--project modules/a,modules/b对每个模块分别扫描并分别计分帮助文本原文score each module separately, names or paths路径也可以条目既可以是包名也可以是指向具体目录的路径*选择全部--project *显式选中所有发现到的项目等价于全 workspace 扫描。命令执行后本次运行只会对所选包做分析和评分其余兄弟包不在扫描范围内。把选择固化到配置里可选分支每次敲--project太繁琐时可以用doctor.config.ts也支持.js/.mjs/.json或package.json里的reactDoctorkey中的projects字段作为持久化形式例如projects: [website]该写法记录于 CHANGELOG。配置与标志的解析规则相同、报错相同。注意优先级命令行--project总是覆盖配置值所以调试时以命令行传参为准。用 JSON 报告验证扫描范围确认「真的只扫了指定包」最可靠的方式是输出 JSON 报告并检查projects数组react-doctor --project web --json report.json依据 docs/json-report.md 的 v3 报告格式核对以下几点projects只包含所选包每个项目条目带packageRoot和framework。当选择落在扫描根目录以外的任何位置包括只选一个包时packageRoot不再是报告的directory该项目的analyzedFiles中路径都是相对于其自身packageRoot的analyzedFiles/analyzedFileCount确认文件清单确实来自目标包而不是全仓库complete字段只有当该项目计划内所有 lint 文件都完成且没有 check 失败时才是true。不要根据空的diagnostics数组推断覆盖范围文档明确要求用complete和analyzedFiles判断。一个值得注意的稳定点即使packageRoot变了诊断的id仍然是相对报告根目录的确定性标识reportRelativeFilePath::line:column::plugin/rule::occurrenceDigest所以按包切换扫描范围不会让已有 baseline 里的 id 失效。边界与报错空选择会被拒绝--project ,这类传了标志但没命名任何项目的输入会直接报错而不是静默扫零个项目未知包名会失败传错名字属于 CLI 输入错误会以明确的错误提示退出而非静默回退配置里失效的projects条目则是警告并回退到根目录扫描而显式敲入的--project因为是本次运行主动指定的出错即失败从子目录运行如果你在apps/website内运行并传--project websiteCLI 会正确识别当前目录就是目标项目这是 CHANGELOG 中修复过的行为*不受此影响它直接短路到根目录。与 --staged 组合如果目标是 monorepo 的 pre-commit 钩子--staged会遵守--project和配置的projects字段每个被选中的包把自己的package.json/tsconfig/ 配置带入 staged 快照每条 staged 路径恰好归属一个包。这样 pre-commit 扫描不会因为没有选中包而导致所有 React 规则被静默关掉。当没有任何文件被 staged 时运行警告并退出 0。完成上述步骤后判断标准很具体report.json的projects数组里只有你指定的包其packageRoot指向对应目录且complete为true——这就是「只扫描指定 workspace 包」成立的直接证据。【免费下载链接】react-doctorYour agent writes bad React. This catches it项目地址: https://gitcode.com/GitHub_Trending/re/react-doctor创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表