@dashnex/cli

中文文档
0.9.0发布于 2026/11/07UNLICENSEDTypeScriptES Module近 30 天下载 2737

DashNex 框架的命令行界面

中文使用文档
文档目录9 节
  1. 安装
  2. 使用量
  3. 图标
  4. 会议
  5. 选项
  6. 开发市场单元
  7. 创建自己的命令
  8. 1. 写一个处理器
  9. 2. 联合国. CliCommandConfig 形状

校对:soup

DashNex框架的命令行界面. 这个CLI工具提供了管理DashNex项目的基本命令,包括模块构建,数据库操作和迁移. 它在节点模块文件夹中搜索所有@dashnex/ * 模块,并从中加载命令 .

每个模块可以在CLI中添加一个命令. 读到这里

安装

npm install -g @dashnex/cli

更新到最新稳定版本 dashnex update ——它以相同的包管理器(npm或pnpm)和包(pack)重新安装CLIdashnex 或者说 @dashnex/cli它被安装了.

使用量

dashnex <command> [options]

图标

命令说明
version显示 CLI 版本
update将 CLI 更新到最新的稳定版本, 使用 npm 或 pnpm 全球安装它来自
login登录到您的 DashNex 账户
logout注销并删除本地证书
switch切换到另一行
whoami显示登录业务( 带有其ID)、 用户和会话文件
dev运行开发服务器(在 DashNex 应用程序文件夹中运行); -p/--port, (中文(简体) ), -H/--host, (中文(简体) ), --https
check运行构建时验证( 在 DashNex 应用程序文件夹中运行)
install使用 pnpm 或 npm 安装依赖性( 在 DashNex 应用程序文件夹中运行)
app create创建新的 DashNex 应用程序
app pull将已有应用程序拖入指定的文件夹
app push推动本地应用程序到 DashNex
app delete删除 DashNex 中的应用程序
app deploy向 DashNex 部署应用程序
app status显示业务、 应用程序 ID、 状态、 URL 和会话文件
app clear删除本地依赖、缓存并构建输出
secrets list列出所有与工人有联系的秘密姓名
secrets set创建或更新一个秘密
secrets delete删除一个秘密
module init在 packages/ 从模块模板(在 DashNex 应用程序文件夹中运行)
module submit <package>构建、发布和提交市场模块供审查(运行于 DashNex 应用程序文件夹)

会议

本届大会生活在 .dashnex/settings.json命令使用最近的一个, 先查看当前文件夹, 然后查看每个父文件夹; 文件是 从来没有合并。 有自己的应用程序文件夹 .dashnex/settings.json 因此,它有自己的会话,独立于您主文件夹中的会话. login, (中文(简体) ), logout, (中文(简体) ), switch, (中文(简体) ), whoami 财务报告和审定财务报表 app status 都一样 文件并打印其路径.

CLI将其会话保持在两个键下,并将其他键留在 单独文件 :

{
  "business": { "token": "…", "refreshToken": "…", "id": "103602" },
  "id": { "token": "…", "refreshToken": "…", "expiresAt": 1793270400000 }
}

business 是选定业务的标志; id 是 DashNex 标识 第二届会议 switch 用户。 由 CLI 0.7. x 及更年长的文件(平面) token, (中文(简体) ), businessId, (中文(简体) ), idToken... 密钥) 仍然被读取并被移动到此布局 下次CLI会保存文件.

在申请中,CLI对照 BUSINESS_ID (而且,如果它很重要, APPLICATION_ID) 申请书。 每个ID都读取 从第一个 .env.production, (中文(简体) ), .env.development 财务报告和审定财务报表 .env 名称 这个. app push, (中文(简体) ), app deploy, (中文(简体) ), app delete, (中文(简体) ), app pull, (中文(简体) ), app tail, (中文(简体) ), secrets 和使用会话的模块命令(例如 db migrate --remote(中文(简体) ) 拒绝竞选其他生意. whoami 财务报告和审定财务报表 app status 显示警告 换句话说.

选项

登录数字 :

  • --business <id> ——要选择的企业编号
  • --no-browser — 打印登录的 URL 而不是打开浏览器

登录通过浏览器中的 DashNex ID: 批准请求,复制 代码显示,并粘贴回CLI。 代码对 10 有效 分钟,只能使用一次.

在申请中, login 选择由 BUSINESS_ID (除非 --business 给出;见 会议,当电流 语句是用于另一个事务.

登录数字 :

从其他命令使用的设置文件中删除会话(参见 会议)并印出其道.

切换数字 :

  • [businessId] ——要切换的企业;没有它,从您的企业列表中选择

重用 DashNex ID 会话 dashnex login,所以不需要新的登录.

备忘数字 :

  • -p, --port <port> – Dev 服务器的端口( 落回到 PORT (原始内容存档于2013-10-10). env var, then 3,000
  • -H, --host <host> ——主机/接口绑定等. 0.0.0.0 当应用程序运行在 Docker 内部时( 返回 HOST var.),后为当地主机. 与 --https 证书也覆盖此主机.
  • --https ——通过HTTPS提供当地信任的证书. 用途 mkcert 从您的 PATH 下载到 ~/.dashnex/mkcert,安装本地 CA(可以提示您的密码)并写入 localhost.pem + 键 localhost-key.pem 进入应用程序 .dashnex/certificates/ 文件夹( 从未执行) 。 如果失败, 将返回 HTTP .

应用程序创建数字 :

  • --subdomain <subdomain> ——子域
  • -t, --template <template> — 模板,可选(名称@branch-or-tag)

应用程序拉数字 :

  • -y, --yes - 跳过提示和子命令

应用程序推数字 :

  • --deploy 编号 : --no-deploy ——推后自动部署或跳出部署
  • --no-check - 跳过前推检查

应用程序删除数字 :

  • -y, --yes - 跳过确认提示

应用程序清晰数字 :

  • -y, --yes - 跳过所有提示

删除 node_modules (包括 vite 缓存),生成 src/dashnex 登记和登记 dist。 。 。 . 然后交互地分别询问是否删除本地数据库(.wrangler从那时起 一个目标持有数据 重建无法恢复。 与 -y编号 :--ci 没有人可以问,所以 数据库和其他所有东西一起清理.

设置机密数字 :

  • --name <name> —— 秘密名称( 如省略, 提示)
  • --value <value> —— 秘密值(如果省略则用被遮住的输入提示)

删除机密数字 :

  • --name <name> —— 秘密名称( 如省略, 提示)

模块输入数字 :

  • [address] - 模块创建,例如:. crm 或者说 @acme/crm。没有它,则直接创建一个缺失的保留模块;如果有多个,则选择其中的一个,并且只创建该模块。 如果您的企业在两个名称空间中拥有同一个地址( 旧的) @dashnex/crm 和一个新的 @acme/crm),通过完整软件包名称
  • --all ——创建每个未在的预留模块 packages/ 现在
  • --ci -没有提示 缺少多个模块,请通过地址或 --all

模块提交数字 :

  • <address> 提交模块,例如:. crm 或者说 @acme/crm。当您的企业在两个名称空间中持有地址时, 传递完整软件包名称
  • --ci — 禁用自旋器( CI 模式)

开发市场单元

市场模块是扩展您 DashNex 应用程序的 npm 软件包 。 模块发布在您的企业自己的命名空间下,例如. @acme/crm (单位:千美元)acme 是命名空间, crm 电话地址). 在命名空间存在之前保留模块 @dashnex/<address> 名称。 建造一个:

  1. 加入开发者程序,并保留商业上的一个模块名称. dashnex.com.
  2. 部署一次申请 此写入 DashNex 注册 .npmrc。 。 。 .
  3. 运行 dashnex app pull 在应用程序文件夹中.
  4. 运行 dashnex module init它创造了 packages/<address> 从模块模板中将软件包名称设置为保留软件包名称(@<namespace>/<address>),指向模板的翻译名空间和 /template 页面和模块中的 API 路径,并将模块链接到应用程序中 package.json。 。 。 .
  5. 建立和发展: cd packages/<address> && pnpm install && pnpm build,则 dashnex install && dashnex dev 在应用程序文件夹中.
  6. 当模块准备好,运行 dashnex module submit @<namespace>/<address> (一个赤裸的) <address> 也可以在一个命名空间中保存它。 软件包名称 packages/<address>/package.json 须与预定时间相匹配。 该系统为DashNex登记册编制并出版模块 review ditt-tag,然后将版本提交审查(latest 仅在版本获得批准后移动). 本地版本必须高于上次提交的版本,其他版本不得审查.

被拉动的应用程序 .npmrc 被复制到模块文件夹中以供发布。 它映射出您的命名空间( I)@<namespace>:registry=向DashNex登记册;CLI向该登记册公布,然后回到 @dashnex:registry 线条。 文件被 gitignored 在模块文件夹, CLI 从不将注册符放入命令行.

创建自己的命令

CLI 自动发现每个安装的命令 @dashnex/* 模块(和您的应用程序). 要添加命令,模块导出一个 默认数组 CliCommandConfig 从 src/commands/index.ts。启动时, CLI 查找每个模块中的命令文件, 按此顺序 :

  1. dist/commands/index.js ——已建套件(已出版模块)
  2. src/commands/index.ts 链接/开发中模块
  3. src/commands/index.js

它导入文件并读取 default 导出( 数组) ,或名称 commands 导出为后退。 发现的命令在顶层注册,所以一个命令命名为 report 被援引为 dashnex report。 。 。 .

1. 写一个处理器

处理者是 CliCommand - 任何具有下列特性的物体: async execute(options) 方法. options 是一个单一对象,将解析过的旗帜(按其长名),位置参数(由 name),并继承了父选项.

// src/commands/index.ts
import type { CliCommand, CliCommandConfig } from '@dashnex/types'

class ReportCommand implements CliCommand {
  async execute(options: { format: string; out?: string; name?: string; ci?: boolean }) {
    console.log(`Generating ${options.format} report for ${options.name ?? 'all'}…`)
    // ...do the work
  }
}

const commands: CliCommandConfig[] = [
  {
    name: 'report',
    description: 'Generate a report',
    arguments: [
      { name: 'name', description: 'Target name', required: false },
    ],
    options: [
      { flags: '-f, --format <format>', description: 'Output format', defaultValue: 'json' },
      { flags: '-o, --out <path>', description: 'Write to a file' },
    ],
    handler: new ReportCommand(),
  },
]

export default commands

现在 dashnex report acme --format csv -o ./acme.csv 电话 execute({ name: 'acme', format: 'csv', out: './acme.csv', ci: false })。 。 。 .

2. 联合国. CliCommandConfig 形状

外地类型说明
namestring命令单词( E)dashnex <name>) (中文(简体) ). 要求.
descriptionstring显示于 --help。 。 。 . 要求.
handlerCliCommand对象为 execute(options): Promise<void>。 。 。 . 需求 (当命令只分组子命令时使用不操作).
argumentsCliArgument[]位置参数 : { name, description, required?, defaultValue? }改为: <name> (必需)或 [name] (可选).
optionsCliOption[]旗帜 : { flags, description, defaultValue? } —— 说 flags 使用命令语法,例如:. -f, --format <format>。 。 。 .
subcommandsCliCommandConfig[]巢被命令(如:. dashnex mymodule sync) (中文(简体) ). 有子命令的父程序在单独运行时会有所帮助 .

注释:

  • A 类 --ci 旗子自动添加到每个命令( 无法旋转 / 交互式提示); 读取为 options.ci。 。 。 .
  • 错误从 execute 以代码报告并退出 1;扔出用户中断被优雅地处理.
  • 发布步骤 : 保证你的建筑喷出 dist/commands/index.js 还有 dist 在软件包中 files,所以指挥船 与模块.

版本与发布记录

@dashnex/cli 共发布 84 个版本,首次发布于 2026/02/13;过去 12 个月发布了 84 个版本。

版本发布日期距今
0.9.0latest2026/11/074 天前
0.8.112026/11/047 天前
0.8.102026/11/047 天前
0.8.92026/11/047 天前
0.8.82026/11/047 天前
0.8.72026/11/047 天前

关于 @dashnex/cli 的常见问题

@dashnex/cli 是什么?

DashNex 框架的命令行界面

如何安装 @dashnex/cli?

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

@dashnex/cli 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@dashnex/cli 支持 ESM 还是 CommonJS?

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

@dashnex/cli 需要什么版本的 Node.js?

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

@dashnex/cli 可以商用吗?

@dashnex/cli 使用 UNLICENSED 许可。作者声明为 UNLICENSED,即不授予公开使用许可(与公共领域的 Unlicense 不同)。使用前需获得作者授权。以上为概括,不构成法律意见,请以许可原文为准。

@dashnex/cli 的下载量有多少?

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

@dashnex/cli 还在维护吗?

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