MacでSalesforce CLIが動かない時の直し方(PATH/sf・sfdx)

※この記事にはアフィリエイトリンクを含みます。

導入

Salesforceの勉強用に Mac で VSCode を整えたあと、次に詰まりやすいのがここでした。

「インストールはした。なのに sfdx が動かない」

「VSCodeのコマンドは出るけど、ターミナルだとコマンドが見つからない」

「sf と sfdx、どっちを使えばいいの?」

結論からいきます。

結論:まずは「CLIが入ってるか」「PATHが通ってるか」「sf/sfdxのどちらで動いてるか」を順に潰す。

これだけで、ほとんど直ります。

最初に戻る
そもそものセットアップ手順(VSCode/CLI/Java/認証)を最短で見直したい人向けに、手順を1本にまとめています。
MacでVSCode+Salesforce開発環境を作る手順(備忘録)を読む →

この記事の目的

Macで Salesforce CLI を使うときに起きる “あるある詰まり” を、最短で直す手順に落とします。

対象

  • Mac(zsh)でVSCode+Salesforce CLIを使っている
  • sfdx / sf が動かない、またはVSCodeとターミナルで挙動が違う

まず確認する(ここで8割決まる)

1) ターミナルで「コマンドが存在するか」を見る

以下を上から順に打ってください。

which sf
which sfdx
sf --version
sfdx --version

判定

  • which sf / which sfdx がパスを返す → CLI自体は見つかっている
  • command not found になる → PATHが通っていない可能性が高い

ポイント

  • 最近は sf を中心に使う流れです。ただ、環境によっては sfdx もまだ残っているので、どっちが生きてるかを先に確認するのが安全です。

パターン別:直し方

パターンA:VSCodeでは動くのに、ターミナルだと動かない

だいたい PATH の読み込み差です。

VSCodeが起動したときの環境変数と、ターミナルで読み込む設定がズレているケースが多いです。

対処手順(zshの標準想定)

1).zshrc を開く(なければ作る)

    cd ~
    ls -a

    2).zshrc を編集して、PATH を増やす(例)

    nano ~/.zshrc


    3)追記(例:Homebrew系を入れているなら定番)

    export PATH="/opt/homebrew/bin:$PATH"
    export PATH="/usr/local/bin:$PATH"

    4)反映して確認

    source ~/.zshrc
    which sf
    sf --version

    補足

    • どのパスを追加すべきかは環境で変わります。だから「まず which が出る状態にする」が目的です。

    パターンB:sfはあるけど sfdxがない(またはその逆)

    これは正常なこともあります。重要なのは「使うコマンドを統一」することです。

    おすすめの運用

    • 基本は sf を使う
    • 記事や古い手順で sfdx が出てくる場合だけ読み替える

    読み替えの感覚

    • sfdx force:org:display 系 → sf org display 系
    • sfdx force:source:retrieve 系 → sf project retrieve 系

    ただ、いきなり全部読み替えると混乱します。なので当面は次の方針でOKです。

    方針

    • 既存のVSCode手順が sfdx 前提なら、まずは sfdx を動かせる状態に寄る
    • 新しく書く手順や自分のメモは sf に寄せる

    パターンC:インストールしたのにバージョンが出ない

    一番多いのは「インストールはしたが、PATHが通ってない」か「別のシェル設定を触っている」です。

    確認ポイント

    • zshを使っているか
    echo $SHELL
    • 設定ファイルが一致しているか
    • zshなら基本は .zshrc を見ることが多いです。

    最後に動作確認(最小セット)

    CLIが動く状態になったら、次は「認証できるか」まで確認します。

    sf org login web
    sf org list

    ここでログイン画面が開いて、ログイン後に sf org list で一覧に出ればOKです。

    もし一覧に出ない場合は、次の確認だけします。

    • そもそもログインが成功しているか(ブラウザ側でログイン完了できたか)
    • 複数Orgを使っていて、どれが既定(default)になっているか

    まとめ

    • まず which と --version で「存在確認」
    • VSCodeとターミナルの差は、だいたい PATH
    • sf と sfdx は環境で混ざるので、どっちが生きてるかを先に見る
    • 最小のゴールは「sf org login web → sf org list」で確認

    おすすめの記事