dsh 命令速查表
dsh 启动器只解析自己的参数,其余全部转给它启动的应用;插件管理走 dsh plugin。
启动器只解析自己的参数。它认不出的第一个词开始,就是被启动应用的参数——所以 dsh web --port 8080 里的 --port 属于 web 应用,不属于启动器。
下面所有内容来自 dsh 0.2.1-rc.2 的 dsh --help 与 dsh web --help。
启动
dsh <名字> 和 dsh --profile <名字> 是同一个调用:启动 $DSH_HOME/profiles/<名字> 下的 profile。
dsh web 是 web profile;dsh headless "run the tests" 回答一个任务、打印结果后退出;dsh --profile acp 通过 stdio 提供自动化客户端接口。
dsh web
dsh --profile web --port 8080
dsh headless "run the tests"
dsh --profile acpweb 应用的参数
这些参数属于 web 应用,所以写在 profile 名字后面:--host、--port、--no-open、--public-url、--trusted-host、--tls-cert、--tls-key。
--host 只接受一个具体的本机地址,通配地址会被拒绝;--port 0 让系统自己挑一个空闲端口。
dsh web --host 127.0.0.1 --port 8080 --no-open
dsh web --helpprofile 与插件
dsh plugin --profile <名字> <pnpm 参数> 会把参数转发给 profile 目录里的 pnpm,所以 add、remove、update 的行为和 pnpm 一致。
--from-default-profile <模板> 用随包模板重建一个自定义 profile 再启动,profile 卡住时用这个。
dsh plugin --profile web add <包名>
dsh rescue --from-default-profile web不启动也能看配置
--dump-default-config 打印不带你自己那层的配置树,--dump-config 打印合成后的树,--dump-config-schema 打印条目与补丁的 JSON Schema。
--patch <路径> 在 profile 层之后再叠一个补丁,可以重复传。
dsh --profile web --dump-config
dsh --profile web --dump-config-schema
dsh tui --patch ./extra.yml常见问题
为什么 dsh --port 8080 没用?
--port 属于 web 应用,不属于启动器。要写成 dsh web --port 8080。
怎么知道某个插件改了什么?
把 dsh --profile <名字> --dump-default-config 和 --dump-config 的输出对比,差出来的就是你那层加插件补丁。
profile 坏了怎么恢复?
dsh <名字> --from-default-profile <模板> 用随包模板重建它,然后启动。
headless 和 web 有什么区别?
headless 跑一个任务、把答案打到标准输出就退出;web 提供浏览器界面并保持会话。
有没有单独的 dsh --help?
有,那是启动器的帮助。dsh web --help 显示 web 应用自己的参数。