CMS・WordPress

Sanityのインストールが終わらず、途中で止まる原因と解決方法【npm / yarn / pnpm対応】

スポンサーリンク

はじめに

Sanity(Headless CMS)を導入しようとして、以下のような状態で止まってしまうことがあります。

npm create sanity@latest

Need to install the following packages:
create-sanity@5.2.11
Ok to proceed? (y) y
⠙

何分待っても進まず、Ctrl + C も効かない…。

本記事では、この問題の原因と解決方法を実体験ベースで解説します。

結論

この問題は以下のいずれかが原因です。

  • npm create と create-sanity の相性問題
  • Yarn 4(PnP)と create-sanity の互換性問題
  • Sanity CLI の依存解決エラー
  • Node / npm のバージョン差異

最短で解決する方法はこれです👇

pnpm dlx sanity@latest init

発生した環境

今回の検証環境はこちらです。

  • Node.js: v20.10.0 → v24.14.1
  • npm: 10.2.3 → 11.11.0
  • OS: macOS
  • パッケージマネージャ: npm / yarn / pnpm

症状①:npm createでフリーズする

npm create sanity@latest

Need to install the following packages: 
create-sanity@5.2.11 Ok to proceed? (y) y (####⠂⠂⠂⠂⠂⠂⠂⠂⠂⠂⠂⠂⠂⠂) ⠏ 
idealTree:jsdom: sill placeDep ROOT lru-cache@5.1.1 OK for: @babel/helper-compilation-targets@7.28.6 want: ^5.1.1

原因

これはエラーではなく、npmの依存解決(idealTree)でハングしている状態です。

特に以下の条件で発生しやすいです。

  • Nodeが古い(20.10など)
  • npm createコマンドを使用
  • ネットワークやregistryの問題

症状②:yarn createでエラーになる

yarn create sanity@latest

Error: Failed to resolve `@sanity/cli` package

原因

Yarn 4 のデフォルトである PnP(Plug’n’Play)方式が原因です。

  • node_modules を作らない
  • create-sanity が通常の解決を前提としている

👉 そのため @sanity/cli が見つからずクラッシュします

スポンサーリンク

症状③:Ctrl + C が効かない

^C^C^C

原因

  • ターミナルがハングしている
  • stdin が壊れている

👉 この場合はターミナルを閉じてOKです

解決方法(優先順)

✅ 方法①:pnpmを使う(最も安定)

npm install -g pnpm

pnpm dlx sanity@latest init

👉 最も成功率が高い方法です

✅ 方法②:yarn dlxを使う

yarn dlx sanity@latest init

※ Yarn 4 の場合は create ではなく dlx を使うのがポイント

Nodeバージョンの重要性

Sanityは Node 20以上が必須です。

特に注意:

  • v20.10.0 → 不安定
  • v20.19.0以上 → 安定
  • v22 / v24 → 推奨

Voltaを使っている場合:

volta install node

Reactは動くのにSanityだけ止まる理由

今回の切り分けで重要だったのがこれです。

npx create-react-app test-app

👉 正常に動いた

つまり

  • npmは壊れていない
  • ネットワークもOK

👉 Sanity CLI特有の問題

なぜSanityだけハマるのか

Sanity CLIは内部で

  • 動的import
  • ESM
  • 依存解決
  • 対話型CLI

を組み合わせています。

そのため

  • npm
  • yarn(PnP)
  • Nodeバージョン

の影響を受けやすいです。

まとめ

今回のポイントを整理します。

  • ログインは不要(この段階では関係ない)
  • npm create はハングしやすい
  • Yarn create はPnPでエラーになる
  • pnpm dlx が最も安定

👉 結論

pnpm dlx sanity@latest init

これでほぼ解決します。

おわりに

Sanityは非常に強力なHeadless CMSですが、CLI周りでハマるケースもあります。

特に今回のような

  • 「止まるだけでエラーが出ない」
  • 「Ctrl + C が効かない」

パターンは調査に時間がかかりがちです。

同じ症状で困っている方の参考になれば幸いです。

スポンサーリンク