# @devdogsuga/devtools 中文文档

规范地址：https://npmcn.com/package/%40devdogsuga/devtools/

版本：0\.1\.53
npm 元数据更新时间：2026-11-02T22:59:11.980Z
中文译文更新时间：2026-11-12T02:38:31.346Z
软件包许可：BSD-3-Clause

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

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

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

- 包体积（解压后）：660 kB，28 个文件
- 模块格式：ES Module
- TypeScript 类型：未声明
- 运行依赖：14 个
- 首次发布：2026-09-27T03:49:05.765Z
- 最新版本发布：2026-11-02T22:59:11.653Z
- 近 30 天下载量：3873（2026-10-12 至 2026-11-10，npm 官方下载统计）
- 已发布版本数：75（近 12 个月 75 个）

## 中文简介

DevDogs寄存器的撰稿人CLI(平台单列波,DogDays,DogPack):包含会话分级填充的真正工具, `setup`, (中文(简体) ), `db sync`, (中文(简体) ), `db types`, (中文(简体) ), `dev-data`上面的菜单, 检查CI运行 `with-env` 发射装置 船舶

## 安装

```sh
npm install @devdogsuga/devtools
```

也可以使用：`pnpm add @devdogsuga/devtools`、`yarn add @devdogsuga/devtools`、`bun add @devdogsuga/devtools`

## README

# @devdogsuga/ 脱口秀

用于 DevDogsUGA 校验的 CLI 撰稿人: 会话的真正工具 上面有菜单 支票CI运行.

```bash
pnpm devtools                           # no arguments: menu of interactive commands
pnpm devtools setup                     # prepare a checkout, then print the database next steps
pnpm devtools doctor                    # first stop: machine, tier, stack, types, buckets, seeded data
pnpm devtools supabase start            # boot Supabase on this machine
pnpm devtools jobs run                  # choose a background job (a cron sync or a Workflow) and run it
pnpm devtools jobs list                 # every job, its schedule, and schedules that never fire
pnpm devtools jobs serve                # keep an app-scoped Workflow runtime open
```

```bash
pnpm devtools supabase db push     # the real tool, with the tier's --db-url filled in
pnpm devtools wrangler|drizzle-kit|psql …
pnpm devtools apply-migrations     # db push, then asks about types:db
pnpm devtools restart-stack|new-migration|push-config
```

`cron` 财务报告和审定财务报表 `workflows` 的别名 `jobs` 将它缩小为一种: `cron run` 实值 `jobs run --kind sync` (快速同步,工人克龙路线)和 `workflows run` 实值 `jobs run --kind long-running` (云浮活泼活泼流.

`supabase` 添加 `--db-url` 或者说 `--project-ref` 从会话的层次,除非您 通过 `--local`, (中文(简体) ), `--linked`, (中文(简体) ), `--db-url` 或者说 `--project-ref` 你自己来 从来没有 返回到链接的项目, 并且从未添加 `--yes`。每次运行都会打印 确切的命令之后.

反对 `staging` 或者说 `production`,每个命令运行前都会询问一次 (单位:千美元)`--yes` 回答这个问题。 没有终点站,或者 `CI=true`,没有菜单和没有 横幅,必须指定等级(`--tier` 或者说 `DEPLOY_ENV`),确认需要 `--yes`,以及 `--no-env` 跳过装入内存文件.

`pnpm devtools script` 选择一个软件包,然后选择其脚本(或脚本) 然后一个有它的包) 然后运行 `pnpm -F <package> run <script>`· ; `pnpm devtools script <package> <script>` 跳过问题.

`--dry-run` 显示什么会运行和运行什么。 工具调用打印为 `Would run: <command>`; 不使用干运行模式生成或写入的命令 并打印自己的命令行。 传出和 `run`,工具拥有每面旗帜 之后的名称,所以把我们的第一: `pnpm devtools --dry-run supabase db push`。 。 。 .

当运行失败时, devtools 会写日志(`~/.local/state/devdogs/logs`,或 `DEVTOOLS_LOG_DIR`)与命令,版本,运行的工具命令以及 devtools自己的输出,秘密被修改,并打印它的路径和哨兵 如果遥测发送一个, 事件 id 。 附加在#tech-support消息上.

`check migrations|env|workers|scripts` 是CI在检查中运行的 替换 DevDogsUGA 的 `packages/repo-checks`) (中文(简体) ). 他们读的退票和 没有其他的: 没有层次, 没有环境文件 . `pnpm devtools --help --json` 打印每个 命令路径(已标记的),用于检查页面显示内容的工具.

这个 `db` 财务报告和审定财务报表 `cf` 名称空间已消失 : `supabase`, (中文(简体) ), `wrangler`, (中文(简体) ), `drizzle-kit` 财务报告和审定财务报表 `psql` 加包脚本(`types:db`, (中文(简体) ), `types:drizzle`, (中文(简体) ), `types:cf`, (中文(简体) ), `preview`替换它们。 堕落者 `run` 化名也消失了(TASK-404): `pnpm -r run <task>` 运行每个软件包中的任务 `pnpm -F <app> <task>` 在一个。 退休人员 `db`, (中文(简体) ), `cf`, (中文(简体) ), `gen`, (中文(简体) ), `emails`, (中文(简体) ), `grant-root`, (中文(简体) ), `preset` 财务报告和审定财务报表 `run` 姓名在他们去的地方被拒绝`preset apply-migrations` 现在 `apply-migrations`,等等). 产品储存库内(下方) `db` 实值 产品本身的指令.

总是需要制作机密的东西不在这里. `deploy`, (中文(简体) ), `env pull|push|audit` 财务报告和审定财务报表 `planner` 包含 `@devdogsuga/backstage` (单位:千美元)`pnpm backstage …` 后台克隆;不再出版); `devtools env` 保留 `init`, (中文(简体) ), `example` 财务报告和审定财务报表 `reset`,以及 `bw` 不见了(后台) `env` 以示警告。 CI电话 `backstage` 直接说.

菜单来自 argv parser 所行的同一命令树, 所以 没有任何第二个名单不步而入 `--help` 各级 而不是这里的桌子。 它的第一个屏幕列出每个交互式命令 以纯英语标题(“重新启动本地Supabase”)命名,命令为 旁边的类型( e)`restart-stack`) (中文(简体) ).

## 哪个重播

两个CLI都来自DevDogsUGA的退赛或后台的出场(`package.json` 名称 `devdogs-monorepo` 或者说 `backstage`; 版式代码为 `packages/cli-core/src/repo/layout.ts`从后台,DevDogsUGA是 `<root>/devdogsuga`: 与本地双胞胎克隆的连接 (单位:千美元)`pnpm devdogsuga`),在CI的被钉住的SHA进行真正的检查.

| 什麽 | 何处 |
| --- | --- |
| `supabase/` (CLI cwd, 配置, 迁移, 种子, 活字形, 活字形外观), `database.types.ts`, (中文(简体) ), `docs/` | DevDogsUGA 的根 (英语:`devdogsuga/` 从后台) |
| `workers.json`, (中文(简体) ), `.github/` | 您所在的回收站; DevDogsUGA 无人管理工人 |
| 应用程序( e)`cron`, (中文(简体) ), `run`, (中文(简体) ), `deploy <app>`,内存表) | 加上DevDogsUGA的保险 `apps/`;在名称相冲突时,你获胜了 |
| `.env`, (中文(简体) ), `.env.<tier>`, (中文(简体) ), `.env.generated` | 您所在的还原根; `deploy write-env` 和本地堆栈 `.env.generated` 也写出 DevDogsUGA 的根,因为制表器会读取自己的 repo 根. `env pull|push|reset` 只碰你的根头. |

`pnpm exec supabase` 财务报告和审定财务报表 `wrangler` 运行在DevDogsUGA的工作空间,所以 `devdogsuga/` 需要自己的钱 `pnpm install` 在使用它们的命令之前.

## 产品存储器

带有一个 `devtools.config.json` 其根源是一个 **产品** (DogDays,DogPack):脱衣舞剧 读取文件并服务一个较小的指令集,不需要分级,没有env 注册和工作空间. 两种产品都带有 `package.json` 谁 `devtools` 脚本是 `pnpm dlx` 运行已公布的 CLI,所以 复选内 :

```sh
pnpm devtools setup
```

其他任何地方,一次性表格是 `pnpm dlx @devdogsuga/devtools@next setup`。 。 。 .

| 命令 | 它会做什么 |
| --- | --- |
| `setup [--local | --hosted]` | 写作 `.env` 从 `.env.example`; 启动 Docker 堆栈( 或占用您自己主机项目的 URL、 密钥和会话集) `DB_URL`(三); `db sync`; 类型; 然后 `oauth`。 。 。 . |
| `db sync [--rebuild] [--strict] [--yes]` | 使您的开发数据库匹配 `supabase/schemas/`: 重现它所损失的东西, 应用你所提取的图案更改, 警告额外( )`--strict` 拒绝改变不同的定义。 永远不要重放它; `--rebuild` 是明确的重设(仅在当地),然后再次登录. |
| `db types [--download] [--pack <file>]` | 从数据库中生成 TypeScript 类型或 Dart 模型, 或下载为您的精确计划散列而构建的 CI . `--pack` 写入释放资产(CI). |
| `db hash` | 打印给生成类型命名的图案散列. |
| `dev-data [--member <email|id>]` | 运行产品 `devData.file` SQL,在一次交易中,作为最后与DevDogs签约的成员. 拒绝产品生产项目. |
| `oauth` | 在您的数据库上"Sign with DevDogs"(与平台的同名向导). |
| `doctor` | Docker 被钉住的Supabase CLI, `.env`,数据库,类型是否与计划相符. |
| `supabase <args>` | 产品针口版本的Supabase CLI. |
| `check env-example` | CI: 爱奇艺 `.env.example` 仅持有公共价值(在应用程序中是船舶). |

简而言之,它是如何运作的:

-   **史克马斯,不是移民.** 贡献者编辑 `supabase/schemas/*.sql`。 。 。 . `db sync` 询问 Supabase CLI (单位:千美元)`db schema declarative sync --no-apply`让他们面对一个被羞辱的人 `supabase/migrations/` 那个 记录数据库应用过的东西,将差异写成新的迁移,并应用它 (单位:千美元)`migration up --local`,或 `db push --db-url` (为主办项目供资) 丢弃表格或列的更改 需求 `--yes`然后它会重新产生这些类型(当它们毫无变化,而且它们都是时空的时空时,它就离开它们). 在主机项目上,一台没有记录的机器(第二台笔记本电脑,被删除) `supabase/migrations/`(第一个) 从项目本身的历史表中恢复(`migration fetch --db-url`),所以diff没有被取出 对空数据库。 该记录属于一个数据库`.devtools/record.json` 注意哪些,哪些 它所应用的文件 : 保留另一个目标的记录, 并获取数据库本身的历史, a 已写入但从未应用的移入正在等待,尚未应用;它将在下一次同步时应用,与 `--yes` 问个问题.
-   **一个成员改变了什么.** 重命名的一列( 缺少这里, 旁边还有同一种类型的) 是 拒绝, 不重建为空 。 对存在事物的特权差异作为什么的GRAT应用 `supabase/schemas` 赠款和报告;除此以外,其他特权不得被取走。 函数以 他们的论证类型, 和缺失的超载 被重建 除了成员自己的.
-   **类型从来没有被承诺.** `db types` 将它们写入配置中的路径, 这条配置是 git- ignored . 化学式散列覆盖了分类的化学式路径,它们的LF正态内容和生成器版本(即: 被绑定的 CLI, 或 supadart; CI 上传 a `<product>-types-<hash>.tgz` 资产至滚动资产 `generated-types` 释放,以及 `db types --download` 去拿一个给你的大麻 没有匹配: 它说是这样的,并点到 `setup`。 。 。 .
-   **两个入室文件.** `.env` 由应用程序公开阅读(`flutter run --dart-define-from-file=.env`(三); `.env.tooling` 被点缀并持有 `DB_URL`, (中文(简体) ), `SECRET_KEY`,目标(`local` 或者说 `hosted`)和 "与 DevDogs 签约"客户端 ID 和 秘密 (`OAUTH_CLIENT_ID`, (中文(简体) ), `OAUTH_CLIENT_SECRET`,哪个 `db sync --rebuild` 登记簿重新登记)。 什么也没有写给 `.env.local` 在产品回放. `setup` (两个文件)和 `oauth` (工具文件)检查它们是否被 git-ignored 并添加到 repo 中 `.gitignore` 当它们不是时(Flutter的默认忽略文件而忽略它们).
-   **被钉住的CLI.** 脱衣舞 `supabase` 内 `node_modules/.bin` 当其版本是 针,否则运行 `pnpm dlx supabase@<pin>` (单位:千美元)`npx --yes supabase@<pin>` 只有在pnpm没有在PATH上).
-   **主办项目** 需要自定义 OAuth 提供者打开, 并允许应用程序的返回地址 . `setup` 两者均通过管理 API 当 `SUPABASE_ACCESS_TOKEN` 已设定,并打印二者 仪表板没有步骤.
-   **无终端.** `setup` 带 `DEVTOOLS_SUPABASE_URL`, (中文(简体) ), `DEVTOOLS_SUPABASE_PUBLISHABLE_KEY`, (中文(简体) ), `DEVTOOLS_SUPABASE_SECRET_KEY` 财务报告和审定财务报表 `DEVTOOLS_DB_URL` 并登记从 `DEVDOGS_OAUTH_CLIENT_ID` 编号 : `DEVDOGS_OAUTH_CLIENT_SECRET` 而不是打开浏览器.

```jsonc
// devtools.config.json
{
  "product": "dogpack", // lowercase id; names the generated-types assets
  "name": "DogPack",
  "supabase": {
    "version": "2.117.0", // the CLI pin; part of the types hash
    "schemas": ["dogpack"], // schemas the generated types cover
    // "dir": "supabase"
  },
  "types": { "kind": "supadart", "out": "lib/generated" }, // or { "kind": "typescript", "out": "src/database.types.ts" }
  "generatedTypes": { "repo": "DevDogsUGA/DogPack" }, // where `db types --download` looks
  "oauth": { "redirectUris": ["dev.dogpack://login-callback"] },
  "devData": { "file": "supabase/dev-data.sql" }, // reads current_setting('devtools.member_id')
  "production": { "projects": ["dogpack", "<project ref>"] }, // BOTH the vanity name and the ref: a Postgres URL only ever carries the ref
  "runHint": "flutter run --dart-define-from-file=.env",
}
```

密码在 `src/product/`· ; `src/active.ts` 摘取树 `src/launch.ts` 切换到它之前 等级解决.

## 遥测披露

CLI向哨兵报告自己的坠毁事故(见: `src/telemetry.ts`),在 默认, 在两者中 `pnpm devtools` 财务报告和审定财务报表 `devtools-ci`数字 :

-   **什麽**: 只发现未发现错误—— 捕获的例外加 a `command` 标签 命名丢弃的子命令(例如). `doctor`, (中文(简体) ), `deploy platform`) (中文(简体) ). 任何关于成功跑步的信息都不会被发送.
-   **何时**: 每次运行, 除非 `DEVTOOLS_TELEMETRY=0` 设置(每台机器或 )——或该建筑没有DSN. DSN是在什么时候烤的 后台的 `publish.yaml` 从 repo 创建软件包 `DEVTOOLS_SENTRY_DSN` 动作变量,所以只发布构建报告; 当地建筑和 `pnpm pack` 柏油丸不从. 任何条件都意味着 没有 `Sentry.init()` 呼叫发生: 没有网络请求, 没有控制台输出 .
-   **什么被擦过**: 这个 CLI 触及本地 `.env` 文件,所以每个事件 路过 `@devdogsuga/sdk/telemetry`在离开过程前共享洗涤器 文件路径已缩小为碱名、 已编辑的电子邮件地址和 从信件、面包屑和 堆栈框。 见 `packages/sdk/src/telemetry/scrub.ts` 到底为什么 洗涤器匹配.

## 版式

`src/` 每个域( kebab- case) 是一个文件夹 。 一个域在 `catalog.ts` (惰性数据)并拥有其处理器在 `commands.ts`· ; `src/catalog.ts` 树作和 `src/cli.ts` 将顶级命令名称映射给处理者。 这个 共享核心(检索和对等加载、ui、遥测、分层和嵌入) 分类、帮助和菜单) `@devdogsuga/cli-core` 软件包, 哪个 `tsdown` 内入 `dist/`。只有捆绑:其他 导入保留外部, 必须在此包中声明 `dependencies` 或者说 `peerDependencies`,而建造失败 当一个人不是 (单位:千美元)`../../scripts/check-bundle-imports.mjs` 读取已建的输出).

[命令指南](https://npmcn.com/package/docs/toolkit/guides/devtools.md) • 妇女 [API 参考](https://devdogsuga.org/docs/toolkit/reference/api/devtools) • 妇女 [快速启动](https://npmcn.com/package/docs/monorepo/guides/quickstart.md)

## 常见问题

### @devdogsuga/devtools 是什么？

DevDogs寄存器的撰稿人CLI\(平台单列波,DogDays,DogPack\):包含会话分级填充的真正工具, setup, \(中文\(简体\) \), db sync, \(中文\(简体\) \), db types, \(中文\(简体\) \), dev-data上面的菜单, 检查CI运行 with-env 发射装置 船舶

### 如何安装 @devdogsuga/devtools？

在项目目录运行 npm install @devdogsuga/devtools，或使用 pnpm add / yarn add / bun add。它还提供命令行工具 devtools、with-env，可以用 npx devtools 直接运行。

### @devdogsuga/devtools 支持 TypeScript 吗？

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

### @devdogsuga/devtools 支持 ESM 还是 CommonJS？

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

### @devdogsuga/devtools 可以商用吗？

@devdogsuga/devtools 使用 BSD-3-Clause 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。另外不得用原作者名义为衍生产品背书。以上为概括，不构成法律意见，请以许可原文为准。

### @devdogsuga/devtools 的下载量有多少？

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

### @devdogsuga/devtools 还在维护吗？

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

