mise を Windows でセットアップする
はじめに
mise は Node.js や Python と言った各種ツールのバージョン管理をするソフトです。このようなバージョン管理ソフトは asdf や anyenv と言ったソフトが過去にもありましたが macOS または Linux のみサポートされ、Windows のサポートはありませんでした。mise は限定的ながら Windows もサポートされており、ツールのバージョン管理ぐらいなら問題なさそうなのでセットアップ手順を残しておきます。
セットアップ手順
- PowerShell(≠ Windows PowerShell)のインストール
- mise のインストール
- PowerShell のプロファイルへの追加設定
PowerShell のインストール
Windows に PowerShell をインストールします。
Windows に標準搭載された Windows PowerShell のままでは、後に PowerShell のプロファイルへの追加設定で使用する .ps1 ファイルから呼び出す API が存在しない(例:System.Management.Automation.LocationChangedEventArgs など)ため動かせません。
PowerShell のインストール手段は公式手順にある方法なら何でも良いと思いますが、Winget が一番簡単かと思います。コマンドも下記の通りです。
winget install Microsoft.PowerShell
mise のインストール
mise も公式手順である Winget で問題ありません。
winget install jdx.mise
ただし、RAM ディスクに TEMP ディレクトリを設定しているような場合だと筆者の環境ではインストール時にエラーが出るため、インストール前に TEMP ディレクトリを C:\Windows\Temp に戻しておきましょう。
PowerShell のプロファイルへの追加設定
PowerShell のプロファイルは公式ドキュメントにある通り、ユーザと PowerShell のホストにより置く場所が異なります。自分の環境にあった設置場所を選び、既定の .ps1 ファイルがなければ作成します。
次に、下記のコマンドを実行します。
mise activate pwsh
実行すると、下記のようにプロファイルに追記する内容が出力されるので、プロファイルのファイルに追記します。
mise activate pwsh
$env:MISE_SHELL = 'pwsh'
$env:__MISE_ORIG_PATH = $env:PATH
function mise {
# Read line directly from input to workaround powershell input parsing for functions
$code = [System.Management.Automation.Language.Parser]::ParseInput($MyInvocation.Statement.Substring($MyInvocation.OffsetInLine - 1), [ref]$null, [ref]$null)
(以下省略)
ここで、注意点です。
追記する内容には mise のパスを指定して実行するような場所が記載されていますが、パスに半角スペースがある場合(例:ユーザ名)、そのままではパスを解釈できずプロファイル読み込み時にエラーが発生します。半角スペースが含まれている場合はパスが記載されているところは全てダブルクォーテーションで囲みましょう。(例:C:\Users\Your Name\AppData\Local\Microsoft\WinGet\Links\mise.exe
なら "C:\Users\Your Name\AppData\Local\Microsoft\WinGet\Links\mise.exe"
に変更する)
動作確認
最初にインストールをした、PowerShell(pwsh.exe)をターミナルから立ち上げた後、mise v
を実行して、エラーが出ずバージョン情報が出れば問題ありません。
> mise -v
_ __
____ ___ (_)_______ ___ ____ ____ / /___ _________
/ __ `__ \/ / ___/ _ \______/ _ \/ __ \______/ __ \/ / __ `/ ___/ _ \
/ / / / / / (__ ) __/_____/ __/ / / /_____/ /_/ / / /_/ / /__/ __/
/_/ /_/ /_/_/____/\___/ \___/_/ /_/ / .___/_/\__,_/\___/\___/
/_/
2025.1.3 windows-x64 (bc1fa08 2025-01-09)
おわりに
mise によって、Windows でも Node.js や Python など様々なツールのバージョン管理が可能になりました。簡単に触った感じでは、ディレクトリ毎のバージョン管理も可能そうです。mise に同梱されているツールならば、Windows へのインストールで問題は出づらいと思います。もし、これらのツールを使用しているのならば導入を検討してみるのも良いかもしれません。
Discussion