# @danielsimonjr/repo-tools 中文文档

规范地址：https://npmcn.com/package/%40danielsimonjr/repo-tools/

版本：2\.6\.0
npm 元数据更新时间：2026-11-09T02:03:59.418Z
中文译文更新时间：2026-11-11T10:47:18.493Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40danielsimonjr/repo-tools
原文对照：https://npmcn.com/package/%40danielsimonjr/repo-tools/?lang=original
项目主页：https://github.com/danielsimonjr/repo-tools#readme
源码仓库：https://github.com/danielsimonjr/repo-tools

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

- 包体积（解压后）：22.3 MB，19 个文件
- 模块格式：ES Module
- TypeScript 类型：未声明
- Node.js 要求：\>=20
- 运行依赖：1 个
- 首次发布：2026-09-25T04:55:16.970Z
- 最新版本发布：2026-11-09T02:03:59.244Z
- 近 30 天下载量：4019（2026-10-12 至 2026-11-10，npm 官方下载统计）
- 已发布版本数：16（近 12 个月 16 个）

## 中文简介

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

## 安装

```sh
npm install @danielsimonjr/repo-tools
```

也可以使用：`pnpm add @danielsimonjr/repo-tools`、`yarn add @danielsimonjr/repo-tools`、`bun add @danielsimonjr/repo-tools`

## README

# 重置工具

`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 或 后 :

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

### 已编译可执行文件

可执行文件持有工具和 Bun 运行时间 。 它不需要Bun,节点或 `node_modules`。 。 。 . 为您的平台下载文件 `SHA256SUMS` 从 [GitHub 发布](https://github.com/danielsimonjr/repo-tools/releases/tag/v2.6.0)数字 :

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

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

```sh
# 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 也标记浏览器下载的文件。 在第一次运行前运行这些命令 :

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

## 从源头运行

用 Bun 运行源工具 :

```sh
bun install
bun src/bin.ts --help
```

## 构建可执行文件

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

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

1.  从锁文件安装依赖性 :
    
    ```sh
    bun install --frozen-lockfile
    ```
    
    每次拉后都这样 可执行文件捆绑已安装的依赖关系, 因此构建 首先比较 `node_modules` 与 `bun.lock`不同的是,1号出口的建筑停了下来 并命名每个软件包。 被冻结的安装不会移除一个包 `bun.lock` 不再继续 名称。 当构建中命名这样的软件包时, 删除 `node_modules` 并再次安装.
    
2.  编译此计算机的可执行文件 :
    
    ```sh
    bun run compile
    ```
    
    要编译到另一个平台,请给出目标:
    
    ```sh
    bun scripts/build.ts --compile --target bun-linux-x64
    ```
    
    文件进入 `bin/`启用 `--outdir <dir>` 选择另一个文件夹.
    
    | 目标 | 文件 | 大小( 大约) |
    | --- | --- | --- |
    | `bun-windows-x64` | `bin/repo-tools-windows-x64.exe` | 108 个 MB |
    | `bun-linux-x64` | `bin/repo-tools-linux-x64` | 103 MB 设备 |
    | `bun-darwin-arm64` | `bin/repo-tools-darwin-arm64` | 84 MB 设备 |
    
3.  运行可执行文件 :
    
    ```sh
    bin/repo-tools-windows-x64.exe --version
    bin/repo-tools-windows-x64.exe map --root=path/to/repo
    ```
    
4.  测试可执行文件,而不仅仅是来源. 可执行文件是船舶的文物:
    
    ```sh
    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.yaml` | `dependency-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` 路径与根相对.

```md
## Verification

| Claim | Value | Source |
|---|---|---|
| totalFiles | 243 | file-inventory.json |
```

```sh
repo-tools check --docs=docs/architecture
# check passed: every claim matches the graph (1 claim in 1 document).
```

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

```text
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工具链 电脑.

```sh
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` 财务报告和审定财务报表 `@return`PHP 文件的根样式是: `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` 更改的文件 :

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

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

```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`数字 :

```sh
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:` 内置 :

```sh
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 寄存器的功能。 它发现 互相复制的函数。 命令只读取寄存器 。 它只写文件时 您指定了一个输出文件夹.

```sh
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](https://npmcn.com/package/%40danielsimonjr/repo-tools/docs/architecture/OVERVIEW.md) | 该项目、其衡量尺度和布局. |
| [文件/建筑/建筑/建筑](https://npmcn.com/package/%40danielsimonjr/repo-tools/docs/architecture/ARCHITECTURE.md) | 层层,关键决策,构建和测试策略. |
| [文献/建筑/COMPENTS.md](https://npmcn.com/package/%40danielsimonjr/repo-tools/docs/architecture/COMPONENTS.md) | 每个模块都有其出口的实际签名. |
| [文件/档案/档案/档案](https://npmcn.com/package/%40danielsimonjr/repo-tools/docs/architecture/DATAFLOW.md) | 每个副指挥各跑一跑,分步走. |
| [文献/建筑/API.md](https://npmcn.com/package/%40danielsimonjr/repo-tools/docs/architecture/API.md) | 命令,旗帜,配置密钥,退出代码和报告文件. |
| [文件/建筑/资料](https://npmcn.com/package/%40danielsimonjr/repo-tools/docs/architecture/FILE_INVENTORY.md) | 每个源文件都有它的面积和处置. 生成. |
| [文献/建筑/技术、技术和科学司](https://npmcn.com/package/%40danielsimonjr/repo-tools/docs/architecture/TEST_COVERAGE.md) | 源文件是测试导入的 。 生成. |
| [文献/建筑/建筑/建筑](https://npmcn.com/package/%40danielsimonjr/repo-tools/docs/architecture/DEPENDENCY_GRAPH.md) | 谁进口谁. 生成. |
| [文件/建筑/未用分析](https://npmcn.com/package/%40danielsimonjr/repo-tools/docs/architecture/unused-analysis.md) | 没有进口商的文件和导出 。 生成. |
| [文件/建筑/复制-符号.md](https://npmcn.com/package/%40danielsimonjr/repo-tools/docs/architecture/duplicate-symbols.md) | 多个文件定义的名称 。 生成. |
| [文件/设计](https://npmcn.com/package/%40danielsimonjr/repo-tools/docs/design.md) | 每个子命令的设计, 逐个节. |

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

## 设计

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

## 许可证

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

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

## 常见问题

### @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 和提交记录判断。

