Sponsored
新しい MacBook Pro を買ったので、開発環境を入れ直しました。
Node.js と Python をそれぞれ nodenv と pyenv で管理する方法もありますが、言語ごとに別のツールを使う構成にはしたくありませんでした。複数の言語やツールをまとめて扱える、モダンな仕組みにしたかったため、今回は mise を使います。
Git、Node.js、Python を使える状態にするため、ツールごとに役割を分けています。
| 対象 | 管理方法 |
|---|---|
| Git と補助ツール | Homebrew |
| Node.js と Python のバージョン | mise |
| Python の依存関係 | uv |
| GitHub の認証 | GitHub CLI による HTTPS の Web 認証 |
前提
今回の MacBook Pro には、Homebrew を導入済みです。まず、Mac の CPU と Homebrew の場所を確認します。
uname -m
brew --prefix
Apple Silicon Mac では、Homebrew の場所は通常 /opt/homebrew です。
Command Line Tools と、macOS 付属の Git も確認しておきます。
xcode-select -p
git --version
Command Line Tools が未導入の場合は、次のコマンドで導入できます。
xcode-select --install
Git と mise を Homebrew で導入する
Git と mise を Homebrew から導入します。
brew install git mise
macOS には Apple 付属の Git が最初から入っていますが、今回は Homebrew 版を使うことにしました。
Homebrew 版のほうがバージョンを管理しやすく、ほかの開発ツールと管理方法を統一できます。
mise を zsh で有効にする
~/.zshrc に Homebrew と mise の初期化設定を追加します。
Apple Silicon Mac の場合は、次の設定にしました。
eval "$(/opt/homebrew/bin/brew shellenv)"
eval "$(/opt/homebrew/bin/mise activate zsh)"
設定後、新しいシェルを起動するか、次のコマンドで読み込み直します。
source ~/.zshrc
mise が正しく有効になっているか確認します。
mise doctor
Node.js と Python を mise で管理する
2026年9月時点では、Node.js 24 が LTS、26 が Current でした。安定性を優先して、Node.js 24 を選びます。
Python は 3.14 が安定版で、3.15 はまだリリース候補版でした。そのため、Python 3.14 を選びました。
mise use --global node@24 python@3.14
実際にインストールされたバージョンは次のとおりです。
| ランタイム | 選んだ系列 | 実際に入ったバージョン |
|---|---|---|
| Node.js | 24(LTS) | 24.21.0 |
| Python | 3.14(安定版) | 3.14.7 |
次のコマンドで確認できます。
mise current
node --version
npm --version
python3 --version
mise use --global で設定した内容は、次のファイルに保存されます。
~/.config/mise/config.toml
プロジェクトごとのバージョン指定
グローバル設定は個人の標準バージョンとして使い、プロジェクトではリポジトリごとに設定します。
cd your-project
mise use node@24 python@3.14
これで、プロジェクト直下に mise.toml が作成されます。
チームでバージョンを完全に固定したい場合は、具体的なバージョンを指定します。
mise use --pin node@24.21.0 python@3.14.7
作成された mise.toml は、通常リポジトリにコミットします。
Python の依存関係管理に uv を使う
Python 本体のバージョン管理は mise、パッケージや仮想環境の管理は uv に分担させます。
brew install uv
導入後、バージョンを確認します。
uv --version
新しい Python プロジェクトでは、次のように始められます。
mkdir sample-python
cd sample-python
uv init
uv add requests
uv run python
pyproject.toml と uv.lock を使って依存関係を管理できます。
グローバル環境へ pip install するのではなく、プロジェクト単位で管理する方針にしました。
GitHub の認証を設定する
以前の Mac では、おそらく GitHub の Web 認証を使っていました。SSH 鍵は GitHub アカウントに登録されていなかったため、今回は SSH ではなく HTTPS 認証を使います。
まず、GitHub CLI を導入します。
brew install gh
ブラウザ認証を始めます。
gh auth login \
--hostname github.com \
--git-protocol https \
--web
ブラウザが自動で開かない場合は、表示された URL を手動で開き、デバイスコードを入力してください。
認証後は、GitHub CLI の認証情報を Git から使える状態にします。
gh auth setup-git --hostname github.com
認証状態は、次のコマンドで確認できます。
gh auth status --hostname github.com
通常の macOS 環境では、認証情報はキーチェーンに保存されます。アクセストークンを直接メモしたり、コマンドへ貼り付けたりする必要はありません。
既存リポジトリで接続を確認する
既存リポジトリへ移動し、リモート URL を確認します。
cd path/to/your-repository
git remote -v
次のように https://github.com/... 形式なら、今回の HTTPS 認証を利用できます。
origin https://github.com/example/example.git
最後に、リモートから取得して確認します。
git fetch origin
リモート URL が SSH 形式の場合は、HTTPS 形式へ変更できます。
git remote set-url origin https://github.com/OWNER/REPOSITORY.git
Git のユーザー情報を設定する
GitHub の認証とは別に、コミットへ記録する名前とメールアドレスも設定します。
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
設定を確認します。
git config --global --list
最終的な構成
最終的には、Homebrew でツールを導入し、mise で Node.js と Python を管理します。Python の依存関係は uv、GitHub の HTTPS 認証は GitHub CLI が担当します。
今回の試行錯誤
最初は、Node.js に nodenv、Python に pyenv を使う方法も考えました。
Sponsored
ただ、現在は複数の言語やツールをまとめて管理できる mise のほうが構成をシンプルにできます。
Node.js は最新版ではなく LTS を選びました。新機能をすぐ試す必要がなければ、Node.js 24 のような LTS 版のほうがプロジェクト開発には向いています。
Python についても、今回の環境に入っていた macOS 付属の Python 3.9.6 を置き換えるのではなく、mise で Python 3.14 を導入しました。
システム側の Python に手を入れず、開発用のランタイムだけを切り替えられる点が扱いやすいところです。
nodenv や pyenv は、既存プロジェクトで指定されている場合を除き、これから新規に採用する必要はなさそうです。
参考
mise 公式ドキュメント
Node.js リリーススケジュール
Python 公式ダウンロード
GitHub CLI 認証
GitHub CLI と Git の連携