はじめに
2026年5月21日、Shopify CLI 4.0 がリリースされました。
CLI 3.0 が登場してから約4年、250回以上のアップデートを経て、ようやくメジャーバージョンが上がります。
さらに5月27日には早くもパッチアップデートとなる 4.1.0 がリリースされました。
この記事は、以下のような方に向けて書いています。
- Shopify CLI 4.0 で何が変わったのか、要点だけ早く知りたい
- CI/CD で
shopify app deployを回していて、影響があるか不安 - 自分の開発環境で今やっておくべきことを確認したい
この記事では、Shopify CLI 4.0 で押さえるべき変更点(セマンティックバージョニング導入、自動アップデート、--force 廃止、Node 20 サポート終了、削除されたコマンド)と、その後の 4.1.0(5/27)の追加変更点 を、CI/CD への影響とあわせて速報的にまとめます。
外部記事Shopify CLI 4.0: SemVer, auto-updates, removing deprecated flags and commands - Shopify de...
CLI 4.0 の変更点は大きく4つ
今回のメジャーアップデートで押さえるべきポイントは、次の4つです。
- セマンティックバージョニング(SemVer)への移行
- CLI の自動アップデート機能の導入
--forceフラグをはじめとする非推奨コマンド・フラグの削除- Node 20 サポートの終了
特に重要なのが3つ目と4つ目です。CI/CD で --force を使っていたり、Node 20 のランナーで動かしているパイプラインは、そのまま放置すると次のデプロイで止まる可能性があります。
1. セマンティックバージョニング(SemVer)への移行
これまでの Shopify CLI 3 系は、250回以上リリースされてきたにもかかわらず、バージョン番号が「中に何が入っているか」を表していませんでした。
外部記事From Romantic to Semantic: Shopify CLI versioning and auto-updates
CLI 4.0 からは、一般的な npm パッケージと同じ SemVer に従います。
- メジャー(4.x.x の最初の数字): コマンド構造や挙動の破壊的変更
- マイナー(x.4.x の真ん中): 新機能の追加
- パッチ(x.x.4 の最後): バグ修正
今後はバージョン番号を見るだけで「安全に上げていい更新か、それとも壊れる可能性があるメジャー更新か」が判断できます。
実務目線では、package.json で ^4.0.0 のように上限をメジャーで切ってピン留めしておけば、マイナー更新で勝手にパイプラインが壊れる事故を構造的に防げます。
2. CLI の自動アップデート機能
SemVer 移行とセットで導入されたのが、自動アップデートです。
CLI 4.0 以降、Shopify CLI はインストールに使ったパッケージマネージャー(npm/yarn/pnpm)を通じて、自分自身を自動的に最新版へ更新します。
ここがポイントなのは、自動更新が走るのはマイナー・パッチ更新だけという点です。
以下のケースでは自動アップグレードがスキップされます。
- CI 環境での実行
- プロジェクトローカルにインストールしている場合(
package.jsonの依存関係に入っているケース) - メジャーバージョン更新(破壊的変更を含むため、手動で上げる必要がある)
自動更新を止めたい場合は、以下のコマンドで無効化できます。
shopify config autoupgrade off実務目線で言うと、ローカルのグローバル環境では常に最新が保たれて楽になる一方、CI ではスキップされるので「いつの間にかパイプラインのバージョンが上がっていた」という事故は起きにくい設計になっています。CI 側のバージョン管理は、これまで通り自分で固定しておくのが安全です。
3. --force フラグの削除と、その代替
今回もっとも実害が出やすいのがこの変更です。
これまで shopify app deploy や shopify app release で使えた --force(短縮形 -f)フラグと、対応する環境変数 SHOPIFY_FLAG_FORCE が、CLI 4.0 で削除されました。--force には問題がありました。それは、低リスクな操作(エクステンションの追加・更新)と高リスクな操作(削除)を区別せず、すべてを一括で承認してしまう点です。
CI/CD で無人実行するために --force を付けていると、意図しない削除まで通ってしまう危険がありました。
代替として用意されたのが、より粒度の細かい2つのフラグです。実はこれらは CLI 3.89.0(2026年1月) の時点で先行追加されており、CLI 4.0 で --force が消えた今、こちらへの移行が必須になります。
--allow-updates: エクステンションの追加・更新を許可する(低リスク)--allow-deletes: エクステンションの削除を許可する(高リスク)
両方を同時に渡すと、確認プロンプトをスキップする(旧 --force と同じ)挙動になります。
# これまで(CLI 3 系)
shopify app deploy --force
# これから(CLI 4.0)— 通常のCI/CDデプロイ
shopify app deploy --allow-updates
# 削除も許可する必要がある場合のみ
shopify app deploy --allow-updates --allow-deletes
Shopify 公式ドキュメントでも明記されていますが、デフォルトのCI/CDワークフローには --allow-updates だけを付け、--allow-deletes は手動実行のクリーンアップ用ジョブに分離する のが推奨パターンです。
エクステンションの削除はストアの関連データも消すため、不可逆な事故を構造的に防ぐ運用が前提になっています。
外部記事Deploy app components in a CD pipeline
GitHub Actions のサンプル
Shopify 公式が示している GitHub Actions のワークフロー例は以下のとおりです。認証は App Automation Token(Dev Dashboard から発行)を使う形になっています。
name: Deploy app
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- uses: actions/setup-node@v3
with:
node-version: 22
cache: 'npm'
- run: npm install
- run: npm install -g @shopify/cli@latest
- name: Deploy
env:
SHOPIFY_APP_AUTOMATION_TOKEN: ${{ secrets.SHOPIFY_APP_AUTOMATION_TOKEN }}
COMMIT_URL: ${{ github.server_url }}/${{ github.repository }}/commit/${{ github.sha }}
run: shopify app deploy --config production --allow-updates --source-control-url "$COMMIT_URL"
--source-control-url を渡しておくと、Dev Dashboard のアプリバージョン詳細画面から該当のコミットへ直接飛べるようになります。
デプロイの追跡性が一段上がるので、CI/CD を組むときはセットで入れておくのがおすすめです。
4. Node 20 サポートの終了
意外と見落とされがちですが、CLI 4.0 で Node 20 のサポートが終了 しました。
CI ランナーや Docker イメージで Node 20 を固定していると、CLI 4.0 をインストールした時点で動かなくなる可能性があります。
公式の GitHub Actions サンプルも Node 22 を前提にしているので、これを機に Node のバージョンも上げておくのが安全です。actions/setup-node の node-version を 22 以上にしておけば問題ありません。
5. その他、削除されたコマンド・フラグ
--force 以外にも、これまで非推奨だったコマンド・フラグがまとめて削除されています。
すでに代替が用意されているので、置き換えるだけで対応できます。
削除されたもの | 代替 |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
対応する環境変数も同様に置き換わっているので注意してください。
SHOPIFY_FLAG_SHARED_SECRET → SHOPIFY_FLAG_CLIENT_SECRET、SHOPIFY_FLAG_EXTENSION_TYPE → SHOPIFY_FLAG_EXTENSION_TEMPLATE のような対応関係です。
特に shopify theme serve → shopify theme dev は、package.json の "theme:serve" のような古いエイリアスが残っているリポジトリで気づかず壊れがちなので、リポジトリ全体を grep して確認しておくと安心です。
【追記】5/27 リリースの CLI 4.1.0 で何が変わったか
CLI 4.0 のリリースから一週間も経たない 2026年5月27日、最初のマイナーアップデート 4.1.0 がリリースされました。
破壊的変更は含まれていません。SemVer に則って、機能追加と修正中心のアップデートです。
主な変更点は以下のとおりです。
shopify app init の挙動改善
スキャフォールド時に、依存パッケージのインストールよりも先にプロジェクトを最終的なディレクトリへ移動するように修正されました。これまで、初期化途中で失敗するとゴミが残るケースがあったのが改善されています。
extension-only テンプレートがデフォルトに
これまで HOSTED_APPS 環境変数で切り替えていた挙動が整理され、エクステンション専用テンプレートがデフォルトになりました。HOSTED_APPS 環境変数も削除されています。Dev Dashboard 上でアプリを作る運用が前提化された動きと言えます。
Git が無い環境でも安全に動作
オプショナルなリポジトリチェック処理で、Git がインストールされていない環境でもクラッシュしないように修正されました。
その他の修正
- ソート比較で同じキー同士を比較してしまう不具合の修正
- README の Homebrew インストール手順の表記修正
機能追加よりは「4.0 で出た細かな引っかかりを潰しに来たアップデート」という印象です。CLI 4.0 にすでに上げている場合、自動アップデートで 4.1.0 へ上がっているはずなので、特別な対応は不要です。
外部記事Release 4.1.0 · Shopify/cli
今やっておくべきこと
速報まとめとして、CLI 4.0 / 4.1.0 への移行で確認すべきポイントを整理します。
- CI/CD の
shopify app deploy --force/shopify app release --forceを--allow-updates(必要なら--allow-deletes)に置き換える - 環境変数
SHOPIFY_FLAG_FORCEを使っていたら削除し、--allow-updatesへの切り替えを行う - 上の表にある削除済みコマンドが、
package.jsonのスクリプトやドキュメント・社内Wikiに残っていないか grep で洗い出す - CI ランナーの Node を 22 以上に上げる(Node 20 サポート終了対応)
- 認証を
SHOPIFY_APP_AUTOMATION_TOKEN(Dev Dashboard で発行)ベースに整える package.jsonで@shopify/cliを^4.0.0でピン留めしておく- 自動アップデートの挙動を把握しておく(ローカルは自動更新、CI・ローカル依存・メジャー更新はスキップ)
特に CI/CD は、放置すると次のデプロイで初めてエラーに気づくパターンになりがちです。先に手を打っておくのがおすすめです。No7 Software のエンジニアリングブログでも、移行の順序として「① 旧コマンドを CLI 3.x のうちに代替形へ置き換え(後方互換あり)→ ② フィーチャーブランチで CLI 4.0 に bump → ③ dev ストアでドライラン → ④ ^4.0.0 でピン留めして本番CIへ展開」という4ステップが推奨されています。
外部記事Shopify CLI 4.0 Breaking Changes: Engineering Migration (2026) | No7 Software
さいごに
Shopify CLI 4.0 は、SemVer 移行と自動アップデートで開発体験を底上げしつつ、--force の削除で「うっかり削除」のリスクを構造的に潰しにきたアップデートです。さらに5/27の 4.1.0 で 4.0 リリース直後の引っかかりが早速潰されており、SemVer 体制が機能し始めているのが見て取れます。
エージェント型開発が当たり前になっていく中で、CLI の重要性は増す一方です。今回の整理は、その土台を固める動きと言えます。まずは手元の --force の置き換えと Node のバージョン確認から始めてみてください。
このブログでは他にも Shopify に関する記事を公開していますので、あわせてご覧いただければ幸いです。