主题开发
主题开发命令,用于创建脚手架、预览和发布主题。它们是 shoplazza themes 下不带 + 前缀的子命令,与主题 API 命令并列。
pull、push、serve 和 share 支持 -e, --environment <名称>,针对 shoplazza.theme.toml 中定义的环境执行,参见 env。
init
基于 Nova 2023 创建新主题脚手架。
shoplazza themes init --name <目录名>
| 参数 | 类型 | 说明 |
|---|---|---|
--name <目录名> | string | 新主题的目标目录名(必填) |
无需登录。目标目录必须不存在或为空。
serve
上传当前主题到店铺并启动实时预览。
shoplazza themes serve [参数]
| 参数 | 类型 | 说明 |
|---|---|---|
--theme-id, -t <THEME_ID> | string | 要预览并覆盖的主题 ID。如省略则使用当前目录的开发主题。 |
--environment, -e <名称> | string | shoplazza.theme.toml 中的环境(店铺、profile、主题) |
--port <PORT> | int | LiveReload 服务端口(默认:21647) |
--skip-push | bool | 跳过启动时的全量上传,直接开始监听;只同步运行期间变更的文件 |
--task-id <TASK_ID> | string | 继续等待之前的上传任务,不重新上传 |
--timeout <秒数> | int | 监听指定秒数后退出(默认:0,一直监听直到中断) |
不传 --theme-id 时,首次运行会创建名为 Development - <主题名> 的开发主题,并把它的 ID 保存在 .shoplazza/theme-state.json 中(每个店铺一个),之后的运行会复用它。
返回内容:预览链接和主题编辑器链接。每次文件变更都会同步到主题并刷新已连接的浏览器。同步是单向的(本地到远端),主题编辑器中的修改需用 themes pull 拉取。命令会一直运行,直到按 Ctrl-C。
启动时的上传会用本地文件替换服务器上的主题文件:只存在于服务器上的文件会被删除,主题编辑器中的修改(包括 config/settings_data.json)会被覆盖。使用 --skip-push 可保留它们。
pull
从 Shoplazza 店铺下载主题文件。
shoplazza themes pull [参数]
| 参数 | 类型 | 说明 |
|---|---|---|
--theme-id, -t <THEME_ID> | string | 要下载的主题 ID。除非 -e 已提供,否则必填;在终端中也可以从列表中选择 |
--environment, -e <名称> | string | shoplazza.theme.toml 中的环境(店铺、profile、主题) |
--dry-run | bool | 只打印将下载的内容和可能覆盖的本地文件,不发送请求 |
文件会解压到当前目录,随后店铺和主题会记录到 shoplazza.theme.toml(default 环境,或 -e 指定的环境);文件不存在时会创建,修改已有环境前会先询问。
push
上传本地主题文件到 Shoplazza 店铺,覆盖远端版本。
shoplazza themes push [参数]
| 参数 | 类型 | 说明 |
|---|---|---|
--theme-id, -t <THEME_ID> | string | 要覆盖的主题 ID。除非 -e 已提供,否则必填;在终端中也可以从列表中选择 |
--environment, -e <名称> | string | shoplazza.theme.toml 中的环境(店铺、profile、主题) |
--task-id <TASK_ID> | string | 继续等待之前的上传任务,不重新上传(超时错误中返回的 task_id) |
--dry-run | bool | 只打印将上传的内容和目标,不打包也不发送请求 |
在终端中,push 覆盖主题前会请你确认。之后最多等待 10 分钟让服务器处理上传;等待超时后可用 --task-id 重新运行继续等待。与 pull 一样,它会把店铺和主题记录到 shoplazza.theme.toml。
package
将本地主题文件打包为 ZIP 文件。
shoplazza themes package [参数]
| 参数 | 类型 | 说明 |
|---|---|---|
--no-ignore | bool | 忽略 .themeignore 规则(默认:false) |
share
上传主题为新的未发布主题,并返回可分享的预览链接。不会覆盖已有主题。
shoplazza themes share [参数]
| 参数 | 类型 | 说明 |
|---|---|---|
--environment, -e <名称> | string | shoplazza.theme.toml 中的环境(店铺、profile) |
--dry-run | bool | 只打印将作为新预览上传的内容,不打包也不发送请求 |
env
查看和编辑 shoplazza.theme.toml 中的环境。CLI 会从当前目录向上查找该文件。
shoplazza themes env <命令> [名称] [参数]
| 命令 | 说明 |
|---|---|
themes env list | 列出所有环境 |
themes env show [name] | 查看单个环境(默认:default) |
themes env check [name] | 离线校验每个环境都能对应到已登录的 profile;省略名称则检查全部 |
themes env add [name] --store <domain> [--theme <id>] | 添加环境 |
themes env set [name] [--store <domain>] [--theme <id>] | 修改已有环境,只改动传入的参数 |
themes env remove [name] | 删除环境 |
[environments.default]
store = "my-store.myshoplaza.com"
theme = "123456"
[environments.staging]
store = "staging.myshoplaza.com"
theme = "654321"
用 -e <名称> 或环境变量 SHOPLAZZA_CLI_ENVIRONMENT 选择环境;两者都未设置时自动使用 default 环境。该文件不保存凭证,环境中的店铺需要有已登录的 profile。add、set、remove 改写文件时不保留注释。
相关
- 主题 CLI 指南
- themes (API) — 主题的完整 API 命令