校对: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 内部时( 返回HOSTvar.),后为当地主机. 与--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> 名称。 建造一个:
- 加入开发者程序,并保留商业上的一个模块名称. dashnex.com.
- 部署一次申请 此写入 DashNex 注册
.npmrc。 。 。 . - 运行
dashnex app pull在应用程序文件夹中. - 运行
dashnex module init它创造了packages/<address>从模块模板中将软件包名称设置为保留软件包名称(@<namespace>/<address>),指向模板的翻译名空间和/template页面和模块中的 API 路径,并将模块链接到应用程序中package.json。 。 。 . - 建立和发展:
cd packages/<address> && pnpm install && pnpm build,则dashnex install && dashnex dev在应用程序文件夹中. - 当模块准备好,运行
dashnex module submit @<namespace>/<address>(一个赤裸的)<address>也可以在一个命名空间中保存它。 软件包名称packages/<address>/package.json须与预定时间相匹配。 该系统为DashNex登记册编制并出版模块reviewditt-tag,然后将版本提交审查(latest仅在版本获得批准后移动). 本地版本必须高于上次提交的版本,其他版本不得审查.
被拉动的应用程序 .npmrc 被复制到模块文件夹中以供发布。 它映射出您的命名空间( I)@<namespace>:registry=向DashNex登记册;CLI向该登记册公布,然后回到 @dashnex:registry 线条。 文件被 gitignored 在模块文件夹, CLI 从不将注册符放入命令行.
创建自己的命令
CLI 自动发现每个安装的命令 @dashnex/* 模块(和您的应用程序). 要添加命令,模块导出一个 默认数组 CliCommandConfig 从 src/commands/index.ts。启动时, CLI 查找每个模块中的命令文件, 按此顺序 :
dist/commands/index.js——已建套件(已出版模块)src/commands/index.ts链接/开发中模块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 形状
| 外地 | 类型 | 说明 |
|---|---|---|
name | string | 命令单词( E)dashnex <name>) (中文(简体) ). 要求. |
description | string | 显示于 --help。 。 。 . 要求. |
handler | CliCommand | 对象为 execute(options): Promise<void>。 。 。 . 需求 (当命令只分组子命令时使用不操作). |
arguments | CliArgument[] | 位置参数 : { name, description, required?, defaultValue? }改为: <name> (必需)或 [name] (可选). |
options | CliOption[] | 旗帜 : { flags, description, defaultValue? } —— 说 flags 使用命令语法,例如:. -f, --format <format>。 。 。 . |
subcommands | CliCommandConfig[] | 巢被命令(如:. dashnex mymodule sync) (中文(简体) ). 有子命令的父程序在单独运行时会有所帮助 . |
注释:
- A 类
--ci旗子自动添加到每个命令( 无法旋转 / 交互式提示); 读取为options.ci。 。 。 . - 错误从
execute以代码报告并退出1;扔出用户中断被优雅地处理. - 发布步骤 : 保证你的建筑喷出
dist/commands/index.js还有dist在软件包中files,所以指挥船 与模块.