Windowsにmiseをインストールして、mise経由でNode.jsをインストールしてグローバルで使用するNodeのバージョンの指定までやってみた。

公式(https://mise.jdx.dev/getting-started.html やhttps://mise.jdx.dev/installing-mise.html#powershell )を参考にやってみたので備忘録。
以前WindowsのWSLのUbuntu上でmiseを入れてnodeを入れる記事を書きましたが、今回はWindowsに直接miseをインストールします。
前提
- Windows PowerShellじゃなくてPowerShellを使用します。
やったこと
miseをインストール
1winget install jdx.mise
実行すると
見つかりました mise-en-place [jdx.mise] バージョン 2025.8.2
このアプリケーションは所有者からライセンス供与されます。
Microsoft はサードパーティのパッケージに対して責任を負わず、ライセンスも付与しません。
このパッケージには次の依存関係が必要です:
- パッケージ
Microsoft.VCRedist.2015+.x64
インストーラーハッシュが正常に検証されました
アーカイブを展開しています...
アーカイブが正常に展開されました
パッケージのインストールを開始しています...
パス環境変数が変更されました; 新しい値を使用するにはシェルを再起動してください。
コマンド ライン エイリアスが追加されました: "mise"
インストールが完了しました
と出力されたのでそのままmiseが使えるようになってそうですね。
念の為PowerShellを再起動して
mise -v
_ __
____ ___ (_)_______ ___ ____ ____ / /___ _________
/ __ `__ \/ / ___/ _ \______/ _ \/ __ \______/ __ \/ / __ `/ ___/ _ \
/ / / / / / (__ ) __/_____/ __/ / / /_____/ /_/ / / /_/ / /__/ __/
/_/ /_/ /_/_/____/\___/ \___/_/ /_/ / .___/_/\__,_/\___/\___/
/_/ by @jdx
2025.8.2 windows-x64 (2025-08-02)
良さそう。
miseでNode.jsをインストール
インストール可能なnodeのバージョン一覧確認
mise ls-remote node
バージョン指定でnodeをインストール(今回は22.18.0)
mise install node@22.18.0
確認
mise ls node
グローバルに22.18.0を使うようにする
mise use --global node@22.18.0
まだこれだけだと単にnode -v
しても使えないはず。
mise exec
を都度使ってnodeのバージョンを指定して使わなくても、PowerShellを起動したら自動でmiseを有効化してnode -v
のようなコマンドだけで実行できるようにする。
(参考:https://mise.jdx.dev/installing-mise.html#powershell )
以下を実行してPowerShellを再起動。
echo 'mise activate pwsh | Out-String | Invoke-Expression' >> $HOME\Documents\PowerShell\Microsoft.PowerShell_profile.ps1
これだけで
node -v
できるようになっているはず。
私はここでnode -v
やmise -v
ができなくなりましたが、それは以下の余談のところに書きます。
以上。
【余談】途中遭遇したトラブルシューティングメモ
echo 'mise activate pwsh | Out-String | Invoke-Expression' >> $HOME\Documents\PowerShell\Microsoft.PowerShell_profile.ps1
を実行後にnode -v
やmise -v
で以下のエラーが出るようになった。
mise --version
InvalidOperation:
Line |
15 | $code = [System.Management.Automation.Language.Parser]::ParseInpu …
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| You cannot call a method on a null-valued expression.
InvalidOperation:
Line |
16 | $myLine = $code.Find({ $args[0].CommandElements }, $true).Command …
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| You cannot call a method on a null-valued expression.
cmdlet Write-Output at command pipeline position 1
Supply values for the following parameters:
InputObject:
PowerShellのバージョンが古いことが原因の可能性があるので確認
pwsh -v
PowerShell 7.2.24
最新ではないのでアップデートする。
winget upgrade --id Microsoft.PowerShell -s winget
新しいバージョンが見つかりましたが、インストールテクノロジが現在インストールされているバージョンと異なります。パッケージをアンインストールして、新しいバージョンをインストールしてください。
なんかうまくいかなかったので(多分もともとの方のインストールの経路が違うから)一旦アンインストールする。
winget uninstall --id Microsoft.PowerShell
PowerShellはアンイストールしてしまったので、コマンドプロンプトを管理者権限で起動して以下を実行。
winget install --id Microsoft.PowerShell --source winget --version 7.5.2.0 --scope machine
再びPowerShellを起動して確認。
pwsh -v
インストールしたバージョンが確認できればok。
pwshプロファイルを確認してmiseの設定があるか確認
メモ帳起動して確認
notepad $PROFILE
以下の1行が書かれてなければ末尾に追加して保存
mise activate pwsh | Out-String | Invoke-Expression
PowerShellを再起動して確認
mise -v
_ __
____ ___ (_)_______ ___ ____ ____ / /___ _________
/ __ `__ \/ / ___/ _ \______/ _ \/ __ \______/ __ \/ / __ `/ ___/ _ \
/ / / / / / (__ ) __/_____/ __/ / / /_____/ /_/ / / /_/ / /__/ __/
/_/ /_/ /_/_/____/\___/ \___/_/ /_/ / .___/_/\__,_/\___/\___/
/_/ by @jdx
2025.8.2 windows-x64 (2025-08-02)
よし直った。(node -v
も成功した)
以上。
Share this post