Shopify CLI / Tools

Shopify CLI 4.0
SemVer 採用・自動更新・非推奨フラグ/コマンドの削除

CLI のバージョン体系が SemVer になり、CLI 自身が自動で上がるようになる。--force や旧コマンドは削除され、CI/CD は --allow-updates--allow-deletes を使う運用へ。

このページの構成
  1. 30秒で理解 : Shopify CLI 4.0 で何が変わる?
  2. 変更点 ① セマンティックバージョニング採用
  3. 変更点 ② 自動アップグレード(auto-upgrade)
  4. 変更点 ③ --force 削除と新フラグ
  5. 削除された旧コマンド/旧フラグ一覧
  6. CI/CD パイプラインの書き換え方
  7. 技術者が押さえる5つのポイント
  8. 業務に活かせる3つのユースケース
  9. 提案で使える1行サマリ

130秒で理解 : Shopify CLI 4.0 で何が変わる?

Shopify CLI 4.0 は「バージョンルール」「アップデート方法」「危険なフラグの撤去」の3点をまとめて整理したメジャーリリース。
要点は SemVer 化/自動更新/--force 撤去(→ --allow-updates--allow-deletes の3つ。
x.y.z

① SemVer 採用

新機能 = minor、バグ修正 = patch、破壊的変更 = major。「次のアップデートで壊れるか」を番号で判断できる。

② 自動アップグレード

CLI 自身がインストールに使ったパッケージマネージャ経由で自動更新。CI/プロジェクトローカル/メジャー版は対象外。

--force 撤去

削除を含む高リスク操作と低リスク操作を区別できなかったため廃止。--allow-updates--allow-deletes で粒度を選ぶ。

2変更点 ① セマンティックバージョニング採用

MAJOR : 4.x.x 破壊的変更 コマンド構造/挙動の変更 自動更新は対象外 MINOR : x.4.x 新機能の追加 後方互換性あり 自動更新 ◯ PATCH : x.x.4 バグ修正のみ 後方互換性あり 自動更新 ◯
SemVer になったことで、「メジャーが上がった時だけ慎重に検証する」という運用ルールが立てやすくなる。今後 5.0 が出るまでは、minor/patch のアップデートはコマンド構造を壊さない前提で受けられる。

3変更点 ② 自動アップグレード(auto-upgrade)

開発者のローカル npm / pnpm / yarn / homebrew いずれか経由で導入 Shopify CLI 4.0 起動時にバージョン確認 新版があれば同じPMで 自分自身を更新 スキップされる条件 ① CI 環境 ② プロジェクトローカルインストール ③ メジャーバージョン更新
ON が既定

勝手に新版が入る

インストールに使ったパッケージマネージャを尊重して、CLI 自身が同じ仕組みで自分を更新する。

無効化可

OFF にしたい時

shopify config autoupgrade off で停止できる。CI / プロジェクトローカル / メジャー更新は元から対象外。

CI では自動更新が走らない仕様 = CI のジョブ内で利用される CLI バージョンは「インストール手順で指定したバージョン」のまま固定される。ローカル開発者だけが新版になり、CI が古いままという乖離が起きうるため、CI でも明示的にバージョン更新を回す運用が必要。

4変更点 ③ --force 削除と新フラグ

項目3.x までShopify CLI 4.0
無人デプロイ --force 一発(粒度なし) 削除
拡張機能の追加・更新 --force に含まれる(低リスク) --allow-updates
拡張機能の削除 --force に含まれる(高リスク) --allow-deletes
事故の起きやすさ 区別なし → 意図しない削除が発生し得た 明示的に「削除を許可する」と書かない限り削除されない
新フラグは 2026年3月の changelog で先行アナウンス済み。4.0 はその「猶予期間」終了タイミングとして --force 本体を撤去した形。CI/CD で --force をハードコードしている場合は、今すぐ --allow-updates(+必要なら --allow-deletes)に書き換える必要がある。

5削除された旧コマンド/旧フラグ一覧

削除されたもの置き換え対象
shopify app deploy --force
shopify app release --force
--allow-updates--allow-deletes app
shopify webhook trigger shopify app webhook trigger app
shopify theme serve shopify theme dev theme
shopify app generate schema shopify app function schema app / function
shopify app webhook trigger --shared-secret --client-secret app
shopify app generate extension --type --template app
これらは 非推奨期間を経て今回まとめて消えたもの。社内ドキュメント、READMEのコマンド例、Makefile、シェルスクリプト、GitHub Actions のワークフローに残っている古い書式を一括検索して置き換えるのが安全。

6CI/CD パイプラインの書き換え方

1

--force を全部消す

リポジトリ全体を --force で grep。デプロイ/リリース系コマンドからは無条件で削除。

2

追加・更新のみ → --allow-updates

新規 extension を増やすだけ/既存 extension のコード更新だけのフローはこれで十分。

3

削除も許す環境のみ --allow-deletes

extension の整理整頓を CI に任せたい場合のみ追加。本番ブランチには付けない方が安全。

7技術者が押さえる5つのポイント

major.minor.patch

1. SemVer 番号でリスク判断できる

5.0 のような メジャー更新が出た時だけ、コマンド構造や挙動の破壊的変更を疑えばよい。minor/patch は基本そのまま受けられる。

CI

2. CI では auto-upgrade が走らない

CI 内の CLI バージョンは固定。ローカル開発者だけが先行してアップグレードする状態になり得る。CI 側のバージョン管理は別途必要。

3. 「追加・更新」と「削除」は明確に分けて指定

CI/CD では原則 --allow-updates のみを使い、--allow-deletes はメンテナンス用ジョブやステージング限定にする運用が事故防止になる。

4. 旧コマンドは複数箇所に潜んでいる

theme servewebhook triggergenerate schema--type--shared-secret は社内 wiki・Makefile・GitHub Actions の YAML に残りがち。一括 grep で洗い出す。

5. shopify config autoupgrade off で自動更新を止められる

バージョン揃えが厳密な現場(受託開発で複数顧客の Shopify CLI バージョンをロックしたい等)では、開発者ローカルでも auto-upgrade を OFF にして dotfiles で配布するのが現実解。

8業務に活かせる3つのユースケース

- --force + --allow- updates CI ready
USE CASE 1

CI/CD パイプラインの「事故ゼロ化」棚卸し

課題
カスタムアプリの GitHub Actions に shopify app deploy --force がベタ書きされており、過去にブランチ整理ミスで extension が一括削除された経験がある。
打ち手
4.0 への更新と同時に、--force--allow-updates に置換。削除を許す処理は別ジョブ(手動承認付き)として切り出し、そこにだけ --allow-deletes を付与。
効果
「うっかり削除」を構造的に防止。レビュアーは Pull Request 上で「これは追加だけ」「これは削除も含む」を明示的に判別できる。
技術メモ
本番デプロイ用ワークフローと、リファクタリング用ワークフローを分離するパターンが推奨。
3.x → 4.0 README Makefile .github/workflows
USE CASE 2

カスタムアプリの「3.x → 4.0 移行」案件化

課題
顧客の Shopify アプリ開発リポジトリに、削除済みコマンド(theme servewebhook triggergenerate schema --type 等)が残っており、4.0 に上げると CI が落ちる可能性がある。
打ち手
① 旧コマンド/フラグの一括 grep → ② 置換マッピングに従って書き換え → ③ ローカルで 4.0 を入れて smoke テスト → ④ PR 化してマージ。
効果
無償アップデートに乗じて「CLI 4.0 移行」を独立した支援メニューとして提案できる。次の major(5.0)への耐性も同時に上がる。
技術メモ
置換対象は本記事で示された 6 種類に限定されるため、見積りスコープを切りやすい。
Local auto ◯ CI pinned
USE CASE 3

受託 ・ 複数案件並走チームの「CLI バージョン統制」

課題
複数案件を抱えるチームで、開発者のローカル CLI が勝手に上がると、案件 A は 4.2、案件 B は 4.5 のような状況で再現性が崩れる。
打ち手
方針 A : 各開発者で shopify config autoupgrade off を実行し、案件ごとの package.json でバージョンを固定。方針 B : CI 側は元から自動更新対象外なので、CI には固定バージョンを明示インストール。
効果
「ローカルで動くのに CI で落ちる/別案件と挙動が違う」を構造的に排除。再現性のあるデバッグが可能になる。
技術メモ
auto-upgrade のスキップ条件(CI/プロジェクトローカル/メジャー)を理解した上で、案件特性に応じて方針を選ぶ。

9提案で使える1行サマリ

「Shopify CLI 4.0 は SemVer 化/自動更新/--force 廃止 をまとめた整理メジャー。
CI/CD は --allow-updates--allow-deletes へ書き換え、旧コマンド6種を一掃すれば移行完了。
今後は 『メジャー番号が上がった時だけ慎重に検証する』運用に切り替えられる。」