@danielsimonjr/repo-tools

中文文档
2.6.0发布于 2026/11/09MITES Module近 30 天下载 4019

一个用于寄存器分析的CLI:依赖图的创建和查询,包含每出口API的事实,文件块和上下文压缩. Bun 上的 TypeScript, 编译为单一可执行文件 .

中文使用文档
文档目录14 节
  1. 安装
  2. npm 软件包
  3. 已编译可执行文件
  4. 从源头运行
  5. 构建可执行文件
  6. 报告
  7. 对照图表检查文档
  8. 打开文件评论
  9. 查询图表
  10. 查找互相复制的函数
  11. 开发
  12. 文档
  13. 设计
  14. 许可证

重置工具

repo-tools 是一个带有这些子命令用于寄存器的命令行工具 :

子命令任务
map写入TypeScript/JavaScript,Python,C#或Rust寄存器的依赖图和架构报告.
depgraph贬值的别名: map (通过 2.x.
check检查 ## Verification 与新图表相比较的Markdown文档表格,在漂移时失败.
docs测量 TypeScript, JavaScript, Python, C#, Rust, Go, Java, Kotlin, C, C++, PHP 和 Ruby 等文件的 doc 注释, 规划缺失的文件, 并打开结果.
chunk将一个大文件分割成块, 将块合并后, 并显示哪些块已更改 .
compress为模型上下文编写文件的紧凑副本,并恢复.
query解答来自 map,并撰写两份衍生报告.
clones列出TypeScript或JavaScript寄存器的功能,并找到互相复制的功能.
ste对照简化技术英语检查Markdown或docstring道具.

状态: 2.6.0版本.

  • map, (中文(简体) ), check 财务报告和审定财务报表 query 从 repo-tools.config.json 入于根间. 这个 节 map 实值 map (它的旧名, depgraph页:1. --config=<file> 制造任何 3⁄4 ̄ ̧漯b.
  • clones 从 clones 区域。 旗子会覆盖 文件,文件将覆盖默认值.
  • repo-tools depgraph 打印一行并运行 map它接受1.x 扫描镜旗 (--src, (中文(简体) ), --tests, (中文(简体) ), --exclude, (中文(简体) ), --also-exclude, (中文(简体) ), --all, (中文(简体) ), --reachable-only, (中文(简体) ), --include-tests)和警告,因为它们在2.0.0. map 1号出口.
  • compress -d 只恢复 JSON 文件.

安装

安装两个表单中的一个.

npm 软件包

Npm 包需要节点 20 或 后 :

npm i -g @danielsimonjr/repo-tools
repo-tools --version

已编译可执行文件

可执行文件持有工具和 Bun 运行时间 。 它不需要Bun,节点或 node_modules。 。 。 . 为您的平台下载文件 SHA256SUMS 从 GitHub 发布数字 :

平台文件
视窗 x64repo-tools-windows-x64.exe
Linux x64 函数repo-tools-linux-x64
马可斯臂64repo-tools-darwin-arm64

校验文件对照 SHA256SUMS 在运行前:

# Linux
sha256sum --ignore-missing -c SHA256SUMS
# macOS: compare the output with the line of the file in SHA256SUMS
shasum -a 256 repo-tools-darwin-arm64
# Windows (PowerShell): compare the output with the line of the file in SHA256SUMS
Get-FileHash repo-tools-windows-x64.exe -Algorithm SHA256

在Linux和macOS上,一个已下载的文件没有执行位. 执行文件没有签名, 所以 macOS 也标记浏览器下载的文件。 在第一次运行前运行这些命令 :

chmod +x repo-tools-linux-x64            # or repo-tools-darwin-arm64
xattr -d com.apple.quarantine repo-tools-darwin-arm64   # macOS only

从源头运行

用 Bun 运行源工具 :

bun install
bun src/bin.ts --help

构建可执行文件

所编译的可执行文件是主要产品:一个持有工具的文件和Bun运行时间. 它不需要Bun,节点或 node_modules 在运行它的机器上.

先决条件: 邦 1.4.2 或 后期, 以及此寄存器的克隆.

  1. 从锁文件安装依赖性 :

    bun install --frozen-lockfile
    

    每次拉后都这样 可执行文件捆绑已安装的依赖关系, 因此构建 首先比较 node_modules 与 bun.lock不同的是,1号出口的建筑停了下来 并命名每个软件包。 被冻结的安装不会移除一个包 bun.lock 不再继续 名称。 当构建中命名这样的软件包时, 删除 node_modules 并再次安装.

  2. 编译此计算机的可执行文件 :

    bun run compile
    

    要编译到另一个平台,请给出目标:

    bun scripts/build.ts --compile --target bun-linux-x64
    

    文件进入 bin/启用 --outdir <dir> 选择另一个文件夹.

    目标文件大小( 大约)
    bun-windows-x64bin/repo-tools-windows-x64.exe108 个 MB
    bun-linux-x64bin/repo-tools-linux-x64103 MB 设备
    bun-darwin-arm64bin/repo-tools-darwin-arm6484 MB 设备
  3. 运行可执行文件 :

    bin/repo-tools-windows-x64.exe --version
    bin/repo-tools-windows-x64.exe map --root=path/to/repo
    
  4. 测试可执行文件,而不仅仅是来源. 可执行文件是船舶的文物:

    bun run smoke -- bin/repo-tools-windows-x64.exe
    

bun run build 写入第二个频道,节点捆绑 dist/cli.js (单位:千美元)node dist/cli.js --help, (中文(简体) ), 带有树保姆语法文件( e)dist/*.wasm旁边.

报告

repo-tools map 将报告写入 docs/architecture/ 树根下(--out=<dir> 命名另一个文件夹; --out=../reports 写出根外. 每个文件生成: do 不用手编辑它。 运行 repo-tools map 重新更新它。 每份Markdown报告开头 a "GENERTED FILE-不要用手来编辑"标语.

人口普查是一串出自git音轨的源文件(出自一出git工作树,一出被打出行走). 使用最多文件的语言决定 map 读取寄存器。 输入文件从不来 从输出文件夹中。 重复许可清单、重复基准和覆盖政策 包含 docs/architecture/,或者在配置给出的路径上. 一个已经拥有的仓库 必须设置自己的许可列表 map.duplicateAllowlist (旧密钥 depgraph.duplicateAllowlist 也读取)到该文件。 Mathts有283个允许列入清单的名字. 以默认路径 重复的门在这些名称上失败 .

字面相对 import() 是一个图边。 活猫 repo_map.py 没有记录。 均等 记录在 docs/parity-2.0.0.md 给出规则和判决.

文件它的答案是什么
dependency-graph.json核心图:每个文件按区域分列,包括进口、出口和边缘;可达到性;周期计数;以及统计.
file-inventory.json每个源文件在哪里,是什么? 包,面积和处理(可到达,构建条目,仅测试,孤儿,测试,工具,配置,实例,板凳),以及普查没有遵循的链接.
duplicate-symbols.json哪些名称可以定义两个或多个文件 ? 对于TypeScript,也包含分类列表.
unused-analysis.json哪些导出和文件不导入 ?
dependency-layers.json子系统视图: src 按模块、切入点、地层和循环组件分列的文件.
DEPENDENCY_GRAPH.md文件与模块如何互相依赖? 每个文件的进出口、依赖矩阵、循环组件(运行时间和只类型)、人鱼图和统计.
dependency-graph.yamldependency-graph.json 作为YAML.
dependency-summary.compact.json以短键对图作小总结,以给模型.
FILE_INVENTORY.md, (中文(简体) ), duplicate-symbols.md, (中文(简体) ), unused-analysis.md上面三个JSON报告, 一个人读.
TEST_COVERAGE.md哪些源文件进行测试负载(直接通过枪管,通过副作用导入,或 import()),而哪些文件没有测试到达?
test-coverage.json相同的覆盖数据,有测试到源地图.
package-export-surfaces.json每个软件包公开导出哪些名称 ? 不为C写作#.

docs/parity-2.0.0.md 记录这些报告如何与 Python 工具进行比较,并与 分页 1.x.

repo-tools query --emit 在同一文件夹中再写两个文件。 它们也是产生的.

文件它的答案是什么
dependency-reverse.json哪些文件导入每个文件? 图中的倒缘.
node-safety.json哪些软件包是浏览器安全, 哪些文件导入一个 node: 内建,其中哪些文件使用 . 每个浏览器安全软件包的条目 ?

对照图表检查文档

repo-tools check --docs=<dir> 读取每个 *.md 文件夹的文件。 支票读取 ## Verification 表格。 每行 | claim | value | source | 名称 : 图表totalFiles, (中文(简体) ), orphanedFiles, (中文(简体) ), runtimeCircularDeps (见A/CN.9/WG.III/WP.III/WP.1号文件)。 值为 编号,文档中表示。 检查会再次构建图表, 因此无法隐藏 stale 报表 漂来漂去。 一个亲戚 --docs 路径与根相对.

## Verification

| Claim | Value | Source |
|---|---|---|
| totalFiles | 243 | file-inventory.json |
repo-tools check --docs=docs/architecture
# check passed: every claim matches the graph (1 claim in 1 document).

当一个值漂移时,退出代码是1,标准错误列出每个问题,每行一个:

OVERVIEW.md: totalFiles claims 243 but actual is 244

某文件的行号准确无误时,无需检查即可通过 <!-- repo-map:no-verification -->。标记必须在其线上单独站立: 句子,代码跨度或表格单元格不计数. repo-tools map 在每次生成的报表上方写出此行。 每一个其他差距都是 失败。 缺少文件文件夹, 没有文件夹 *.md 文件,没有验证的文档 区域,和无行区域都是失败。 一个未知的索赔名称也是失败。 也一样 显示图建件不可靠. docs/design.md (第15节)规定了规则和 与 Python 工具的不同. docs/parity-check.md 记录与该工具的比较 11个仓库.

打开文件评论

repo-tools docs 读取 TypeScript, JavaScript, Python, C#, Rust, Go, Java, Kotlin, C, C++, PHP 和 Ruby 等带有 git 音轨的文件. 这个 查找每个函数,类,界面,类型别名和方法,以及每个函数的 doc 注释. 单位 C#和Rust也发现了每个结构,enum,特质和财产. 它不需要Python、.NET或Rust工具链 电脑.

repo-tools docs scan .                      # writes docs/code-docs/COVERAGE.md and coverage.json
repo-tools docs check .                     # the gate: exit 1 on a MUST issue
repo-tools docs stub . --path=src/api       # a dry run: lists the stubs and writes nothing
repo-tools docs stub . --path=src/api --apply
repo-tools docs stub . --style=numpy --apply  # Python: google (default), numpy, rest

C# 文件的分贝样式是 xmldoc (单位:千美元)/// <summary>),以及一个Rust文件 rustdoc (单位:千美元)/// 与 # Arguments 财务报告和审定财务报表 # Returns (第2款)。 Go 文件的根样式是 godoc页:1 // 线条 从名称开始。 Java 文件的根样式是 javadoc,以及一个 Kotlin 文件 kdoc两者 写入 @param 财务报告和审定财务报表 @return。 C 或 C++ 文件的根样式是 doxygen它写着 @brief 线条, @param 财务报告和审定财务报表 @returnPHP 文件的根样式是: phpdoc (单位:千美元)@param $x) (中文(简体) ). 鲁比的花花样 文件为 yard (单位:千美元)# 线条 @param x 财务报告和审定财务报表 @return。 C 或 C++ 页眉 (.h, (中文(简体) ), .hpp, (中文(简体) ), .hh, (中文(简体) ), .hxx已经 导出符号。 源文件( R).c, (中文(简体) ), .cpp, (中文(简体) ), .cc, (中文(简体) ), .cxx)没有,因为头是合同.

规则是:

规则级别规则
M1级必须导出符号有文件注释 。 测试文件被豁免 .
M2级必须博士评论有摘要一行.
M3级必须Doc 注释中没有签名缺少的参数 .
M4级必须医生的评论为否 TODO: 标记.
M5型导弹必须文件使用一个 doc 方言: google, (中文(简体) ), numpy 或者说 rest 以蟒蛇盟誓, tsdoc 或者说 jsdoc 用于类型脚本, xmldoc 为C#, rustdoc 为罗斯, godoc 为去, javadoc 对于爪哇, kdoc 为克特林, doxygen 用于C和C++, phpdoc 用于 PHP, yard 为鲁比.
2号应该摘要以全站为结束.
第5条应该文件注释不重复签名所持有的类型 .
6号应该散文采用简化后的技术英语(英语: repo-tools ste) (中文(简体) ).

只有 MUST 的出站代码更改 check不解析的文件也是失败, 因为一个未知的文件不是一个干净的文件。 没有源文件的寄存器也失败 。 也一样 另一种语言(例如斯维夫特)的文件多于所有语言的文件的寄存器 上面一起来。 命令命名语言和出入口 1.

stub 是一个干燥,直到你通过 --apply。每个柱子都拿着标记 TODO:这样 check 失败 直到你用真正的道具取而代之 命令在更改后再次解析文件 . 一个不再分析的文件 保持不变。 命令跳过链接或链接的文件 解析出根外,并命名已跳过的文件.

--style=<style> 选择根的窗体 : tsdoc (违约)或 jsdoc 用于类型脚本和 Java 脚本, google (违约), numpy 或者说 rest 为彼菩萨. --style=auto 跟着一个方言 每个文件.

要满足拉动请求 而不是全部积压,给 check 更改的文件 :

git diff --name-only origin/main... > changed.txt
repo-tools docs check . --paths-from=changed.txt

A 类 .code-docs.json 选项。 每个条目都需要一个理由,输出 名称 :

{ "exclude": [ { "path": "assembly/", "reason": "AssemblyScript" } ] }

docs/design.md (第16节)给出规则,出站代码和与Python的区别 工具. docs/parity-docs.md 9个储存库记录了与该工具的比较.

查询图表

repo-tools query 回答来自 dependency-graph.json (和 package-export-surfaces.json 页:1 is-public) (中文(简体) ). 它不分析源文件, 因此运行 repo-tools map 先说 它读取了图中的每个区域,以及一个不是文件的路径 1. 实例使用副本 tests/fixtures/depgraph/mono-repo数字 :

repo-tools map
repo-tools query dependents packages/core/src/math.ts
# packages/core/src/index.ts
# packages/core/src/worker.ts
# packages/core/tests/math.test.ts
repo-tools query symbol-users add
# packages/cli/src/main.ts
# packages/core/src/index.ts
# packages/core/tests/math.test.ts
repo-tools query is-public packages/core add
# PUBLIC: add is exported from packages/core
repo-tools query is-public packages/core double
# INTERNAL: double is not in the public export surface of packages/core
repo-tools query cycles
# 0 simple cycles
repo-tools query cycles --components
# runtime: 0 cyclic components
# type-only: 0 cyclic components

浏览器安全命令只服务于TypeScript/JavaScript. 软件包是上方的文件夹 src/index.ts 文件( 编号. 为根文件。 每个软件包是 浏览器安全, 除非 --node-runtime=<pkg,...> 或配置密钥 query.nodeRuntimes 列出它. 这个 . 浏览器安全软件包的输入不得到达导入文件 node: 内置 :

repo-tools query node-safety
# packages/core: clean (the . entry reaches no node: code)
repo-tools query --check-browser-safety
# browser-safety check passed: the . entries of 1 browser-safe package reach no node: code.
repo-tools query --emit
# Written: docs/architecture/dependency-reverse.json (4 files)
# Written: docs/architecture/node-safety.json (0 node files, 0 leaks)

--check-browser-safety 漏出1号出口 查询其报告来源于 --out,则 配置密钥 query.out,则 map.out,则 docs/architecture运行 repo-tools query --help 每一个选项.

查找互相复制的函数

repo-tools clones 列出 TypeScript 或 JavaScript 寄存器的功能。 它发现 互相复制的函数。 命令只读取寄存器 。 它只写文件时 您指定了一个输出文件夹.

repo-tools clones .                              # prints the summary and writes no file
repo-tools clones . --src=src --out=reports/clones
repo-tools clones . --min-nodes=30 --near=0.7

一个函数是一个单位,当它有一个名称,它的正文至少有50个标签. 标签是一个节点 身体的形状。 姓名、文字、类型和评论没有详细内容,所以与其他姓名一起复制一份 火柴。 比赛。 命令发现了两种结果:

结果含义
精确组标签序列相同的单位.
近对两个单位共享足够运行 6个标签.

--src=<path>... 指定要读取的文件夹。 默认 auto 读取文档 src 区域. --out=<dir> 写入 inventory.jsonl (每个单位一行)和 clones.json (各集团和 将两个)输入文件夹。 将文件夹作为相对于根的路径。 运行 repo-tools clones --help 对于每个极限.

退出代码:运行完成后为0,即使没有找到副本. 当根没有源文件时 1 读取。 2在用法错误,配置文件错误或不是文件夹的根上.

结果是候选人名单。 在你改变任何事情之前,先看两具尸体.

该命令在重构过程中为一个寄存器的所有者服务. 得分排名为一跑的对分. 别 比较寄存器、设置或工具版本之间的计数或分数.

docs/design.md (第17节)给出了规则. docs/parity-clones.md 记录与 记忆审计的原型 记忆和深思熟虑的Mcp 记录显示,两个解析器 说吧 该记录未对其他储存库提出任何索赔.

开发

命令任务
bun test运行单元测试.
bun run typecheck运行 TypeScript 类型检查.
bun run lint运行标识和格式检查.
bun run build写入节点捆绑 dist/cli.js。 。 。 .
bun run compile将此平台的编译可执行文件写入 bin/。 。 。 .
bun run smoke -- <command...>运行烟雾测试 以一种方式运行工具.
bun run privacy运行跟踪文件的隐私检查和任务信息.
bun run hooks安装 commit-msg 钩子,运行每个消息的隐私检查.
bun run audit:ledger还原每个固定 docs/fix-ledger-2.0.0.md 在抓取副本和检查 测试该修复失败.
bun run compare:docs比较两个 docs scan 报告,写一行对等,或给每个未分解的文件一个原因.
bun run check:design查找每个引用 docs/design.md 上面没有那个号码.

文档

文档目录
文件/建筑/OffioEW.md该项目、其衡量尺度和布局.
文件/建筑/建筑/建筑层层,关键决策,构建和测试策略.
文献/建筑/COMPENTS.md每个模块都有其出口的实际签名.
文件/档案/档案/档案每个副指挥各跑一跑,分步走.
文献/建筑/API.md命令,旗帜,配置密钥,退出代码和报告文件.
文件/建筑/资料每个源文件都有它的面积和处置. 生成.
文献/建筑/技术、技术和科学司源文件是测试导入的 。 生成.
文献/建筑/建筑/建筑谁进口谁. 生成.
文件/建筑/未用分析没有进口商的文件和导出 。 生成.
文件/建筑/复制-符号.md多个文件定义的名称 。 生成.
文件/设计每个子命令的设计, 逐个节.

运行 repo-tools check . --docs=docs/architecture 比较文档中的数字和代码.

设计

docs/design.md 描述模块,输出规则,配置,扩展合同, 隐私检查和核实。 它的"2.0引擎"一节描述 map。 。 。 .

许可证

麻省理工学院. 见 LICENSE。 。 。 .

第三方通知: NOTICE 持有薄荷/作曲许可证(MIT),其中部分内容来自: repo-tools docs 来源.

版本与发布记录

@danielsimonjr/repo-tools 共发布 16 个版本,首次发布于 2026/09/25;过去 12 个月发布了 16 个版本。

版本发布日期距今
2.6.0latest2026/11/092 天前
2.5.02026/11/065 天前
2.4.02026/11/037 天前
2.3.02026/10/2319 天前
2.2.72026/10/2319 天前
2.2.62026/10/2319 天前

关于 @danielsimonjr/repo-tools 的常见问题

@danielsimonjr/repo-tools 是什么?

一个用于寄存器分析的CLI:依赖图的创建和查询,包含每出口API的事实,文件块和上下文压缩. Bun 上的 TypeScript, 编译为单一可执行文件 .

如何安装 @danielsimonjr/repo-tools?

在项目目录运行 npm install @danielsimonjr/repo-tools,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 repo-tools,可以用 npx repo-tools 直接运行。

@danielsimonjr/repo-tools 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/danielsimonjr__repo-tools 是否存在。

@danielsimonjr/repo-tools 支持 ESM 还是 CommonJS?

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

@danielsimonjr/repo-tools 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=20。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@danielsimonjr/repo-tools 可以商用吗?

@danielsimonjr/repo-tools 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@danielsimonjr/repo-tools 的下载量有多少?

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

@danielsimonjr/repo-tools 还在维护吗?

最新版本 2.6.0 发布于 2026/11/09(2 天前);至今共发布 16 个版本,其中过去 12 个月发布了 16 个;首次发布于 2026/09/25。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。