Skip to Content
🎉 探索 Shopify 的无限可能 结构化知识 + 实战案例,持续更新中...
Liquid 开发Shopify CLI 使用指南
专题主题开发与 Liquid →

Shopify CLI 教程:安装、主题开发命令与 CI/CD 自动部署

更新于 2026-10 · 基于 Shopify CLI 4.x(npm 当前版本 4.9.0)与 shopify.dev 官方文档 整理

Shopify CLI 不是”可选的效率工具”,而是 Shopify 主题和应用开发的唯一官方入口。 在后台代码编辑器里改 Liquid 没有版本控制、没有本地预览、没有回滚;用 CLI 后,你得到的是:本地改代码 → 开发主题实时热更新 → Git 管理 → 一条命令推送到店铺。

网上大量中文教程还停留在 CLI 2.x 时代(shopify auth whoami、theme generate section、@shopify/theme 包、Node 16),这些命令在 3.0+ 已不存在或已变更,照着做必然报错。本文按 2026 年 10 月的官方文档重新核对了每条命令。


一、Shopify CLI 是什么,谁需要它

Shopify CLI 是官方开源的命令行工具(GitHub:Shopify/cli ),命令格式统一为 shopify [topic] [command],覆盖三类工作:

主题(topic)用途典型使用者
shopify theme主题开发:本地预览、拉取 / 推送、发布、Theme Check、Liquid 性能分析主题开发者、建站服务商
shopify app应用开发:初始化、本地联调、生成扩展、部署发版App 开发者
shopify store直接对店铺执行 Admin GraphQL、批量操作、创建开发店运营技术、数据迁移、脚本化运维

你需要 CLI 的判断标准:

情况是否需要
只在后台改主题设置、拖拽 Section不需要
偶尔改一两行 Liquid / CSS可选,后台代码编辑器够用
每月改代码超过 2–3 次,或多人协作需要——没有版本控制迟早覆盖别人的修改
维护多个店铺 / 开发、测试、生产三套主题必须,配合 shopify.theme.toml 多环境
开发自定义 App、Checkout 扩展、Functions必须,没有替代方案

一句话原则:只要你改的是代码而不是设置,就该用 CLI + Git,而不是后台编辑器。


二、安装 Shopify CLI(Windows / macOS / Linux)

2.1 环境要求(官方当前要求)

依赖最低版本检查命令
Node.js22.12 或更高node -v
包管理器npm / Yarn 1.x / pnpm 任一npm -v
Git2.28.0 或更高git --version

最常见的坑:Node 版本过低。旧教程写的 Node 16/18 已不满足 4.x 的要求,安装能成功但运行时报错。建议用 nvm(macOS / Linux)或 nvm-windows / fnm 管理 Node 版本。

2.2 安装命令

# npm(推荐,三平台通用) npm install -g @shopify/cli@latest # yarn yarn global add @shopify/cli@latest # pnpm pnpm install -g @shopify/cli@latest

macOS 也可以用 Homebrew:

brew tap shopify/shopify brew install shopify-cli

验证安装:

shopify version shopify help

注意:旧教程里的 npm install -g @shopify/cli @shopify/theme 是 3.x 早期写法,现在只需安装 @shopify/cli 一个包。GitHub releases 下载二进制、shopify-cli-windows-amd64.exe 这类方法属于已停止维护的 2.x,不要再用。

2.3 自动升级(CLI 4.0 起)

从 CLI 4.0 开始,CLI 会通过你安装时使用的包管理器自动升级(CI 环境、项目内本地安装和大版本升级除外)。

shopify upgrade # 立即升级 shopify config autoupgrade status # 查看自动升级状态 shopify config autoupgrade off # 关闭自动升级(之后每天提示一次新版本) shopify config autoupgrade on # 重新开启

团队项目如果需要锁定版本,建议把 CLI 作为项目 devDependency 安装,而不是依赖全局自动升级。

2.4 国内网络 / 公司代理

CLI 3.78+ 支持通过环境变量走代理:

export SHOPIFY_HTTP_PROXY=http://proxy.example.com:8080 # 可选:HTTPS 走另一个代理,不设置则沿用 HTTP 代理 export SHOPIFY_HTTPS_PROXY=https://secure-proxy.example.com:8443 # 带认证的代理 export SHOPIFY_HTTP_PROXY=http://username:password@proxy.example.com:8080

npm 安装慢可以临时切换镜像源,但装完后建议切回官方源,避免自动升级时拉到不同步的版本。


三、登录与店铺连接

CLI 3.0+ 没有单独的 shopify auth whoami、list-stores 命令了。正确流程是:直接运行一个需要店铺权限的命令,CLI 会自动弹出浏览器让你登录。

# 第一次连接时指定店铺,之后的命令会记住这个店铺 shopify theme dev --store my-store # 查看当前连接的是哪个店铺 shopify theme info # 切换账号:先登出,下次运行命令时重新登录 shopify auth logout

三种认证方式怎么选

方式适用场景用法
Shopify 账号登录日常本地开发店主、带 Themes 权限的员工账号或协作者账号
Theme Access 密码给外包 / CI 用,不想给后台账号安装官方 Theme Access  应用生成密码,命令加 --password
自定义应用 Access Token已有自定义应用的团队需 read_themes、write_themes 权限,同样通过 --password 传入

红线:不要把店主账号密码交给外包。给协作者账号(见 协作者权限设置)或 Theme Access 密码,项目结束即可单独撤销。


四、主题开发命令速查

所有 shopify theme 命令都要在符合 Shopify 主题目录结构的文件夹里运行(assets、blocks、config、layout、locales、sections、snippets、templates)。

4.1 常用命令表

命令作用常用参数
shopify theme init克隆一个 Git 仓库作为新主题起点(默认 Skeleton 主题)主题名
shopify theme dev上传为开发主题并在 http://127.0.0.1:9292 本地预览,支持热更新--store --theme --port --live-reload --theme-editor-sync --open
shopify theme pull从店铺下载主题文件--theme --live --development --only --ignore --nodelete
shopify theme push上传本地文件到店铺主题--theme --unpublished --development --live --allow-live --only --ignore --json --publish
shopify theme share上传为新的未发布主题,生成可分享预览链接--store
shopify theme list列出店铺所有主题及 ID、状态—
shopify theme publish发布一个未发布主题--theme
shopify theme check运行 Theme Check,检查 Liquid 错误和最佳实践--auto-correct --fail-level --output --init
shopify theme profile用 Speedscope 分析某个页面的 Liquid 渲染耗时--url --json
shopify theme console启动 Liquid REPL,在真实店铺数据上试 Liquid 表达式--url
shopify theme package把本地主题打包成可上传的 ZIP—
shopify theme duplicate / rename / delete复制 / 重命名 / 删除店铺里的主题--theme
shopify theme info显示当前店铺与主题环境信息—

4.2 开发主题(development theme)的规则

shopify theme dev 会创建一个开发主题,它有几条容易踩坑的规则:

  • 不占主题数量上限,后台主题库里看不到;
  • 7 天不活跃自动删除;
  • 运行 shopify auth logout 时会被删除——如果要给客户一个长期可用的预览链接,用 shopify theme share 或 shopify theme push --unpublished;
  • 默认会用本地文件覆盖开发主题;如果你在后台主题编辑器里调过设置并想同步回本地,加 --theme-editor-sync;
  • 本地预览地址无法预览结账页定制。

4.3 日常开发流程

# 1. 拉取线上主题作为起点(首次) shopify theme pull --store my-store --live # 2. 本地开发,浏览器打开 http://127.0.0.1:9292 shopify theme dev # 3. 提交前做静态检查 shopify theme check # 4. 推送到一个未发布主题,给客户 / 同事验收 shopify theme push --unpublished # 5. 验收通过后在后台或用命令发布 shopify theme publish --theme 123456789012

4.4 用 profile 和 console 定位慢页面

# 分析商品页 Liquid 渲染耗时,打开火焰图 shopify theme profile --url /products/your-product # 在真实店铺数据上试 Liquid shopify theme console --url /products/your-product

theme profile 是排查”首页 / 集合页服务器响应慢”的第一工具:火焰图里横条最宽的 snippet 或 section,就是该优先优化的地方。更多性能方法见 Liquid 性能优化。

4.5 .shopifyignore:不想同步的文件

在主题根目录创建 .shopifyignore,支持文件名、通配符和正则:

templates/product.temp.json config/*_secret.json *.jpg /\.(txt|gif|bat)$/

强烈建议把 config/settings_data.json 和 templates/*.json 是否忽略想清楚:这些文件保存着运营在后台编辑器里的配置,本地 push 会覆盖线上的设置。多人协作时,通常用 --ignore 或 --only 精确控制推送范围。

红线:不要在没有备份的情况下对线上主题执行 shopify theme push --live --allow-live。先 theme duplicate 或 theme pull 留一份,再推送。


五、shopify.theme.toml:多店铺 / 多环境配置

如果你要在开发店、测试主题、生产主题之间来回切,每次都敲 --store --theme --password 会出错。官方方案是在主题根目录建 shopify.theme.toml:

[environments.default] store = "my-dev-store" [environments.staging] store = "my-store" theme = "123456789012" password = "shptka_xxxxxxxx" ignore = ["config/settings_data.json"] [environments.production] store = "my-store" password = "shptka_xxxxxxxx" live = true allow-live = true

使用:

shopify theme dev # 自动使用 [environments.default] shopify theme push -e staging # -e 是 --environment 的简写 shopify theme push -e production

参数优先级:命令行参数 > 环境变量(如 SHOPIFY_FLAG_STORE)> shopify.theme.toml。

check、delete、info、list、publish、pull、push、rename、share 支持同时传多个环境,例如一次推送到多个店铺:

shopify theme push -e store-us -e store-eu

注意:shopify.theme.toml 里如果写了 Theme Access 密码,必须加进 .gitignore,或改用环境变量注入。


六、应用开发命令速查

命令作用
shopify app init创建新应用项目
shopify app dev本地启动应用并连接开发店,自动处理隧道与配置
shopify app generate extension生成扩展(Checkout UI、Admin、Theme App Extension、Functions 等)
shopify app build构建应用和扩展
shopify app deploy部署应用配置和扩展,生成新的应用版本
shopify app release发布指定的应用版本
shopify app versions list查看已部署的版本
shopify app config link / use / pull / validate管理 shopify.app.toml 配置文件(多套配置可切换)
shopify app env pull / show拉取或查看应用环境变量
shopify app logs查看应用日志
shopify app function run / replay / typegen本地运行、重放 Function 执行、生成类型
shopify app webhook trigger发送测试 Webhook
shopify app graphiql / execute用应用身份调试或执行 GraphQL

部署前先跑 shopify app config validate,能在上线前发现 shopify.app.toml 的配置错误。完整的应用开发流程见 Shopify 应用开发指南。


七、Store 命令:脚本化执行 Admin GraphQL

这是 CLI 近期新增的一组命令,适合不想专门写一个 App,又需要批量查询或修改店铺数据的场景(商品批量调整、数据导出、迁移核对)。

# 1. 用指定权限对店铺授权(保存在线 access token 供后续复用) shopify store auth --store my-store.myshopify.com --scopes read_products,write_products # 2. 执行查询(默认只允许 query,禁止 mutation) shopify store execute --store my-store.myshopify.com \ --query 'query { shop { name } products(first: 5) { nodes { title handle } } }' # 3. 从文件读取查询和变量,结果写入文件 shopify store execute --store my-store.myshopify.com \ --query-file ./queries/products.graphql \ --variable-file ./queries/vars.json \ --output-file ./out/products.json # 4. 确认要修改数据时,才显式加 --allow-mutations shopify store execute --store my-store.myshopify.com \ --query-file ./mutations/update-price.graphql --allow-mutations

其他可用命令:store graphiql(本地 GraphiQL 界面)、store bulk execute / status / cancel(批量操作)、store info、store list、store create dev(创建开发店)。

红线:--allow-mutations 默认关闭是有原因的。对生产店铺跑 mutation 前,先在开发店验证,并把 --scopes 控制在最小必要范围。token 过期或权限不够时,重新运行 store auth 即可。


八、CI/CD:用 GitHub Actions 自动部署主题

官方推荐的认证方式是 Theme Access 密码,不需要任何人的账号登录。

第一步:在店铺安装 Theme Access 应用,生成密码(以 shptka_ 开头)。

第二步:在 GitHub 仓库 Settings → Secrets 中添加 SHOPIFY_FLAG_STORE(如 my-store.myshopify.com)和 SHOPIFY_CLI_THEME_TOKEN。

第三步:添加工作流 .github/workflows/deploy-theme.yml:

name: Theme deploy on: push: branches: [main] jobs: deploy: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: 22 - name: Install Shopify CLI run: npm install -g @shopify/cli - name: Theme Check run: shopify theme check --fail-level error - name: Upload theme env: SHOPIFY_CLI_THEME_TOKEN: ${{ secrets.SHOPIFY_CLI_THEME_TOKEN }} SHOPIFY_FLAG_STORE: ${{ secrets.SHOPIFY_FLAG_STORE }} SHOPIFY_FLAG_FORCE: 1 run: shopify theme push --json --theme 123456789012
环境变量是否必填说明
SHOPIFY_CLI_THEME_TOKEN必填Theme Access 密码
SHOPIFY_FLAG_STORE必填目标店铺
SHOPIFY_FLAG_FORCE可选设为 1 关闭交互确认,避免流水线卡住超时

一句话原则:CI 推送到指定的未发布主题 ID,人工在后台点发布。不要让流水线直接 --live --allow-live,一次错误合并就会直接改掉线上店铺。

旧教程里的 SHOPIFY_CLI_TOKEN、node-version: '16'、actions/checkout@v2 都已过时,请按上面的写法替换。


九、常见报错与排查

现象常见原因解决方法
安装后运行报语法错误或依赖错误Node 版本低于 22.12node -v 检查,用 nvm 升级 Node 后重装 CLI
command not found: shopify全局 npm bin 目录不在 PATH 中npm prefix -g 查看路径并加入 PATH;Windows 重开终端
shopify auth whoami / theme generate 报”命令不存在”照着 CLI 2.x 教程操作3.0+ 已移除;查看当前店铺用 shopify theme info
theme dev 提示目录不是主题不在主题根目录,或目录结构不完整进入包含 layout、sections、templates 等的目录再运行
登录后提示没有权限员工 / 协作者账号缺少 Themes 权限让店主在后台给账号开启主题权限
开发主题突然不见了7 天不活跃自动删除,或执行过 auth logout重新运行 theme dev;长期预览改用 theme share / push --unpublished
push 后运营在后台的配置丢了本地 settings_data.json / templates/*.json 覆盖了线上先 theme pull 再推送,或用 --ignore 排除这些文件
端口 9292 被占用另一个 theme dev 进程未退出shopify theme dev --port 9293
公司网络下登录 / 上传超时网络需代理设置 SHOPIFY_HTTP_PROXY / SHOPIFY_HTTPS_PROXY
CI 流水线卡住超时等待交互确认设置 SHOPIFY_FLAG_FORCE=1
store execute 修改数据被拒mutation 默认禁用确认无误后加 --allow-mutations

排查时加 --verbose 查看详细日志(注意:详细日志可能包含敏感信息,不要直接贴到公开社区)。


十、FAQ

Q1:Shopify CLI 免费吗?需要 Shopify Plus 吗? A:完全免费且开源,任何套餐都能用。你只需要一个店铺(或免费的开发店)以及有 Themes 权限的账号。

Q2:Shopify CLI 支持 Windows 吗? A:支持。Windows 用 npm / yarn / pnpm 全局安装即可,前提是 Node.js 22.12+ 和 Git 2.28+;Homebrew 安装方式仅限 macOS。

Q3:shopify theme dev 会影响线上店铺吗? A:不会。它上传的是隐藏的开发主题,访客看不到,也不占主题数量上限。只有 push --live、publish 这类命令才会改动线上主题。

Q4:后台主题编辑器的改动怎么同步到本地? A:运行 shopify theme pull 拉取对应主题;如果正在 theme dev,可加 --theme-editor-sync 让编辑器改动实时写回本地文件。

Q5:旧教程里的 shopify auth login、theme generate section 还能用吗? A:theme generate 是 CLI 2.x 命令,3.0+ 已移除,新建 Section 直接在 sections/ 目录新建 .liquid 文件。登录不需要手动执行,运行任何需要店铺权限的命令时 CLI 会自动引导登录;切换账号用 shopify auth logout。

Q6:给外包开发者权限,用 CLI 应该给什么? A:优先给协作者账号(带 Themes 权限)或 Theme Access 密码,不要给店主账号。Theme Access 密码可以单独撤销,最适合短期合作和 CI 使用。


延伸阅读

小结:2026 年用 Shopify CLI,记住三件事——Node 22.12+ 只装 @shopify/cli 一个包;日常用 theme dev 开发、push --unpublished 验收、人工发布;多店铺用 shopify.theme.toml,CI 用 Theme Access 密码。命令与参数以 Shopify CLI 官方文档 当前版本为准。

最后更新时间: