@devdogsuga/devtools

中文文档
0.1.53发布于 2026/11/03BSD-3-ClauseES Module构建来源已验证近 30 天下载 3873

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

中文使用文档
文档目录4 节
  1. 哪个重播
  2. 产品存储器
  3. 遥测披露
  4. 版式

@devdogsuga/ 脱口秀

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

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
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,所以 复选内 :

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"(与平台的同名向导).
doctorDocker 被钉住的Supabase CLI, .env,数据库,类型是否与计划相符.
supabase <args>产品针口版本的Supabase CLI.
check env-exampleCI: 爱奇艺 .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 而不是打开浏览器.
// 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 读取已建的输出).

命令指南 • 妇女 API 参考 • 妇女 快速启动

版本与发布记录

@devdogsuga/devtools 共发布 75 个版本,首次发布于 2026/09/27;过去 12 个月发布了 75 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.1.53latest2026/11/039 天前
0.1.53-next.1241next2026/11/039 天前
0.1.53-next.12102026/11/0210 天前
0.1.53-next.10632026/11/0210 天前
0.1.522026/10/2815 天前
0.1.52-next.8102026/10/2715 天前

关于 @devdogsuga/devtools 的常见问题

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