跳转到内容

CLI 参考

Wippy 运行时的命令行界面。

适用于所有命令:

标志缩写描述
--config配置文件(默认:.wippy.yaml)
--verbose-v启用调试日志
--very-verbose包含堆栈跟踪的调试日志
--console-c彩色控制台日志
--silent-s禁用控制台日志
--event-streams-e将日志流式传输到事件总线
--profiler-p在 localhost:6060 启用 pprof
--memory-limit-m内存限制(例如 1G、512M)

内存限制优先级:--memory-limit 标志 > GOMEMLIMIT 环境变量 > 默认 1GB。

创建新的锁文件。

Terminal window
wippy init
wippy init --src-dir ./src --modules-dir .wippy
标志缩写默认值描述
--src-dir-d./src源代码目录
--modules-dir.wippy模块目录
--lock-file-lwippy.lock锁文件路径

启动运行时或执行命令。

Terminal window
wippy run # 启动运行时
wippy run list # 列出可用命令
wippy run test # 运行测试
wippy run snapshot.wapp # 从打包文件运行
wippy run acme/http # 从中心运行模块
wippy run acme/http@1.2.3 # 运行指定版本
wippy run --exec app:worker # 启动运行时并执行单个进程
标志缩写描述
--override-o覆盖条目值(namespace:entry:field=value);field 可为 kind 以更改条目种类
--set覆盖配置值(section.path=value,可重复,优先于配置文件)
--exec-x执行进程后退出(namespace:entry
--host--exec 的终端主机 ID(若仅存在一个 terminal.host 则自动检测)
--registry中心模块的注册中心 URL

--set 从命令行写入任意运行时配置值,按叶子合并到 .wippy.yaml 之上:

Terminal window
wippy run --set cluster.enabled=true \
--set cluster.membership.join_addrs=node-2:7946,node-3:7946 \
--set cluster.raft.bootstrap_expect=3

值按形态转换:true/false 转为布尔,整数和浮点转为数字,其余保持字符串(在选项需要时,5s 这样的时长会被解析)。

检查 Lua 代码的类型错误和警告。

Terminal window
wippy lint
wippy lint --level warning
wippy lint --json
wippy lint --rules

验证所有 Lua 条目:function.lualibrary.luaprocess.luaworkflow.lua(包括其 .bc 变体)。

标志缩写默认值描述
--lock-file-lwippy.lock锁文件路径
--levelwarning最低严重级别:errorwarninghint
--ns按命名空间模式过滤(例如 applib.*
--code按错误代码过滤(例如 E0001,E0004
--rulesfalse启用风格/质量 lint 规则
--summaryfalse按错误代码分组输出
--limit0最多显示的诊断数(0 = 无限制)
--jsonfalseJSON 输出
--no-colorfalse禁用彩色输出
--cache-resetfalselint 前清除 Lua 缓存

添加模块依赖。

Terminal window
wippy add acme/http
wippy add acme/http@1.2.3
wippy add acme/http@latest
标志缩写默认值描述
--lock-file-lwippy.lock锁文件路径
--registry注册中心 URL

从锁文件安装依赖。

Terminal window
wippy install # 安装全部
wippy install acme/http # 安装指定模块
wippy install --refresh acme/http # 重新获取指定模块
标志缩写默认值描述
--lock-file-lwippy.lock锁文件路径
--refreshfalse重新获取每个模块,绕过缓存
--forcefalse--refresh 的别名
--repairfalse--refresh 的别名
--registry注册中心 URL

更新依赖并重新生成锁文件。

Terminal window
wippy update # 更新全部
wippy update acme/http # 更新指定模块
wippy update acme/http demo/sql # 更新多个模块
标志缩写默认值描述
--lock-file-lwippy.lock锁文件路径
--src-dir-d./src源代码目录
--modules-dir.wippy模块目录
--registry注册中心 URL

创建快照包(.wapp 文件)。

Terminal window
wippy pack snapshot.wapp
wippy pack release.wapp --description "Release 1.0"
wippy pack app.wapp --embed app:assets --bytecode **
标志缩写描述
--lock-file-l锁文件路径
--description-d包描述
--tags-t包标签(逗号分隔)
--meta自定义元数据(key=value)
--embed嵌入 fs.directory 条目(模式匹配)
--list列出 fs.directory 条目(预览模式)
--exclude-ns排除命名空间(模式匹配)
--exclude排除条目(模式匹配)
--bytecode将 Lua 编译为字节码(** 表示全部)

将模块发布到 Hub。

Terminal window
wippy publish
wippy publish --version 1.0.0
wippy publish --dry-run

从当前目录的 wippy.yaml 读取配置。

标志描述
--version发布版本
--dry-run仅验证,不实际发布
--label以可变标签发布,而非版本号
--release-notes发布说明
--protected将版本标记为受保护
--embed按 id 或 name 嵌入 fs.directory 条目
--config包含 wippy.yaml 的目录路径(默认:.)
--registry注册中心 URL
--create若模块在注册中心尚不存在则自动创建
--module-visibility新建模块的可见性(仅 --create):publicprivate(默认:private)
--module-type新建模块的类型(仅 --create):libraryapplicationagentplugin(默认:application)
--module-display-name新建模块的显示名称(仅 --create

在 Hub 中搜索模块。

Terminal window
wippy search http
wippy search "sql driver" --limit 20
wippy search auth --json
标志默认值描述
--jsonfalse以 JSON 格式输出
--limit20最大结果数
--registry注册中心 URL

管理注册中心认证。

Terminal window
wippy auth login
wippy auth login --token YOUR_TOKEN
标志描述
--tokenAPI 令牌
--registry注册中心 URL
--local将凭据存储在本地
Terminal window
wippy auth logout
标志描述
--registry注册中心 URL
--local删除本地凭据
Terminal window
wippy auth status
wippy auth status --json
标志描述
--json以 JSON 格式输出

从 Hub 获取模块的 README。

Terminal window
wippy readme wippy/terminal
wippy readme wippy/terminal@1.2.3
wippy readme --json wippy/terminal@latest
标志描述
--json以 JSON 格式输出
--registry注册中心 URL(默认:来自凭据)

查询和检查注册表条目。

Terminal window
wippy registry list
wippy registry list --kind "function.lua.*"
wippy registry list --ns "app.*" --json
wippy registry list --meta "type=api" --meta "enabled=true"
标志缩写描述
--kind-k按类型过滤(glob 模式)
--ns-n按命名空间过滤(glob 模式)
--name按名称过滤(glob 模式)
--meta按元数据过滤(可重复)
--json以 JSON 格式输出
--yaml以 YAML 格式输出
--lock-file-l锁文件路径

--meta 的元数据运算符:

运算符含义
field=value精确匹配
field~regex正则匹配
field*substr包含子串
field^prefix以前缀开头
field$suffix以后缀结尾
Terminal window
wippy registry show app:http:handler
wippy registry show app:config --yaml
标志缩写描述
--field-f显示指定字段
--json以 JSON 格式输出
--yaml以 YAML 格式输出
--raw原始输出
--lock-file-l锁文件路径

打印版本信息。

Terminal window
wippy version
wippy version --short

任何 process.luaprocess.wasm 条目都可以通过添加 command 元数据注册为命名命令:

entries:
- name: test_runner
kind: process.lua
meta:
command:
name: test
short: Run application tests
source: file://runner.lua
method: main
modules:
- io
- registry
- funcs

使用以下方式运行:

Terminal window
wippy run test

列出所有可用命令:

Terminal window
wippy run list
字段必填描述
namewippy run <name> 配合使用的命令名称
shortwippy run list 中显示的简短描述
main将此条目标记为默认命令(由仅提供单个命令的 pack 与中心模块自动选用)

任何进程条目类型均可使用(process.luaprocess.wasm)。命令名称在所有已加载的条目中必须唯一。命令名称之后的参数会作为字符串负载传递给进程。

Terminal window
# 初始化项目
wippy init
wippy add wippy/http wippy/sql
wippy install
# 检查错误
wippy lint
# 启用调试输出运行
wippy run -c -v
# 覆盖本地开发配置
wippy run -o app:db:host=localhost -o app:db:port=5432
Terminal window
# 创建带字节码的发布包
wippy pack release.wapp --bytecode ** --exclude-ns test.**
# 从打包文件运行并设置内存限制
wippy run release.wapp -m 2G
Terminal window
# 执行单个进程
wippy run --exec app:worker
# 启用性能分析器
wippy run -p -v
# 然后:go tool pprof http://localhost:6060/debug/pprof/heap
Terminal window
# 添加新依赖
wippy add acme/http@latest
# 强制重新下载
wippy install --force
# 更新指定模块
wippy update acme/http
Terminal window
# 登录 Hub
wippy auth login
# 验证模块
wippy publish --dry-run
# 发布
wippy publish --version 1.0.0 --release-notes "Initial release"

创建 .wippy.yaml 以保存持久化设置:

logger:
encoding: console
logmanager:
min_level: -1 # debug
profiler:
enabled: true
address: localhost:6060
override:
app:gateway:addr: ":9090"
app:db:host: "localhost"