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

    AI

    The installation of Sanity stops

    Listen & Subscribe

    はじめに

    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 が効かない」

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

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