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

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

公式(https://mise.jdx.dev/getting-started.htmlhttps://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 -vmise -vができなくなりましたが、それは以下の余談のところに書きます。

以上。

【余談】途中遭遇したトラブルシューティングメモ

echo 'mise activate pwsh | Out-String | Invoke-Expression' >> $HOME\Documents\PowerShell\Microsoft.PowerShell_profile.ps1

を実行後にnode -vmise -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