许多命令配置,例如与命令一起使用的主题和商店,都是通过标志传递的。为了避免在每条命令中传递多个标志,并方便切换项目或情景,可以使用环境。环境是命令配置的集合,可以使用单个 –environment 标志按名称引用。
以下情况可能需要使用环境:
- 需要频繁切换开发商店。
- 使用主题访问密码访问多个商店空间。
- 需要将项目部署到主题的开发、暂存和生产实例中。
您需要在工作的每个主题库中配置环境。使用 shopify.theme.toml 配置文件配置环境。
配置环境
要为本地主题项目配置环境,请执行以下操作:
- 在项目根目录下创建名为 shopify.theme.toml 的文件。
- 使用 [environments.YOUR_ENVIRONMENT_NAME] 语法为要创建的每个环境添加一个表格标题。
- 在创建的标题下方,为要用于环境的标志和标志值添加键值对。
您可以为任何标志设置特定于环境的值,但 environment、path、verbose 除外。
要在环境中使用Boolean 标志,请指定 true 作为值。
[environments.env1]
theme = "123456789012"
store = "my-store"
password = "shptka_123456"
ignore = "sections/header.liquid"
[environments.env2]
store = "another-store"
path = "./dist"
ignore = ["sections/announcement-bar.liquid", "sections/header.liquid"]
output = "json"
live = true
allow-live = true
注意事项
某些共享标记(如 force)会根据命令的不同而有不同的含义。在某些情况下,在环境中加入这些标记可能会产生意想不到的后果。例如,在删除命令中使用强制会在未经确认的情况下删除主题。
使用环境
要使用环境,请将环境名称与命令一起传递:
shopify theme dev --environment env1
# using the flag alias
shopify theme dev -e env1
shopify theme dev --environment env1
╭─ info ─────────────────────────────────────────────────╮
│ │
│ Using applicable flags from env1 environment: │
│ │
│ • store: my-store │
│ • password: *******456 │
│ • ignore = "sections/header.liquid" │
│ │
╰────────────────────────────────────────────────────────╯
如何应用环境标记
您可以在任何主题命令中使用环境。环境标志的应用规则如下:
1.如果环境中包含一个标记,但运行的命令不接受该标记,那么该标记将被忽略。
2.如果环境中的标志使用了错误的数据类型,或应用了相互排斥的标志,则会出现错误。
3.标记值按优先顺序应用:
命令级标志
环境变量
shopify.theme.toml 中的环境设置
这意味着,如果将标志作为命令的一部分传递,则将使用命令中传递的标志值,而不是环境标志值:
shopify theme dev --environment env1 --store my-new-store --password shptka_102938
╭─ info ─────────────────────────────────────────────────╮
│ │
│ Using applicable flags from env1 environment: │
│ │
│ • ignore = "sections/header.liquid" │
│ │
╰────────────────────────────────────────────────────────╯
如何应用环境标记
您可以在任何主题命令中使用环境。环境标志的应用规则如下:
- 如果环境中包含一个标记,但运行的命令不接受该标记,那么该标记将被忽略。
- 如果环境中的标志使用了错误的数据类型,或应用了相互排斥的标志,则会出现错误。
- 标记值按优先顺序应用:1.命令级标志 2.环境变量 3.shopify.theme.toml 中的环境设置
这意味着,如果将标志作为命令的一部分传递,则将使用命令中传递的标志值,而不是环境标志值:
shopify theme dev --environment env1 --store my-new-store --password shptka_102938
╭─ info ─────────────────────────────────────────────────╮
│ │
│ Using applicable flags from env1 environment: │
│ │
│ • ignore = "sections/header.liquid" │
│ │
╰────────────────────────────────────────────────────────╯
发表回复