WindowsでNode.js(fnm)

Node.jsを利用するために、バージョン管理はnvmより早いとウワサのfnmを使っていきます。

Windowsのネイティブ環境(WSLではない)で使います。アプリのインストールにはScoopをなるべく使うようにします。

fnmのインストール

Scoopに有るか確認

> scoop search fnm
Results from local buckets...

Name Version Source Binaries
---- ------- ------ --------
fnm  1.37.1  main

> scoop info fnm

Name        : fnm
Description : Cross-platform Node.js version switcher
Version     : 1.37.1
Bucket      : main
Website     : https://github.com/Schniz/fnm
License     : GPL-3.0-only
Updated at  : 2024/06/14 1:29:15
Updated by  : github-actions[bot]
Binaries    : fnm.exe
Notes       : Don't forget to add "fnm env --use-on-cd | Out-String | Invoke-Expression" to your powershell profile.

Scoopでインストール

> scoop install fnm
Installing 'fnm' (1.37.1) [64bit] from 'main' bucket
fnm-windows.zip (3.0 MB) [====================================================================================] 100%
Checking hash of fnm-windows.zip ... ok.
Extracting fnm-windows.zip ... done.
Linking ~\scoop\apps\fnm\current => ~\scoop\apps\fnm\1.37.1
Creating shim for 'fnm'.
'fnm' (1.37.1) was installed successfully!
Notes
-----
Don't forget to add "fnm env --use-on-cd | Out-String | Invoke-Expression" to your powershell profile.

書かれている通りにプロファイルに追加する。

> notepad $profile

fnm env --use-on-cd | Out-String | Invoke-Expression

ターミナルを再起動して反映させましょう。

fnmのバージョンを確認

> fnm -V
fnm 1.37.1

Node.jsのインストール

インストールできるNode.jsのバージョンを確認

> fnm list-remote
v0.1.14
・・中略・・
v22.6.0

LTSの最新版 v20.16.0 をインストール

> fnm install 20.16.0
Installing Node v20.16.0 (x64)
00:00:04 ██████████████████████████████████████████████████████████████████████████ 28.18 MiB/28.18 MiB (5.90 MiB/s, 0s)

バージョンを切り替える

> fnm use 20.16.0
Using Node v20.16.0

Node.jsのバージョンを確認

> node -v
v20.16.0

使い方

ディレクトリの .node-version ファイルに従ってバージョンを自動で切り替えてくれるとのこと。
そのバージョンがインストールされていなければインストールを促してくれる、とか。
試してみます。

> mkdir test-node

    Directory: C:\Users\tmacoto\Work

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d----          2024/08/16    22:55                test-node

> echo v18.20.4 > .\test-node\.node-version
> cd .\test-node\
Can't find an installed Node version matching v18.20.4.
Do you want to install it? answer [y/N]: y
Installing Node v18.20.4 (x64)
00:00:04 ██████████████████████████████████████████████████████████████████████████ 27.40 MiB/27.40 MiB (6.07 MiB/s, 0s)
Using Node v18.20.4
> node -v
v18.20.4

スバラシイ!!

もう一回確認

> fnm list
* v18.20.4
* v20.16.0 default
* system
> node -v
v20.16.0
> cd test-node
Using Node v18.20.4
> node -v
v18.20.4
> cd ..
> node -v
v18.20.4
> fnm use default
Using Node for alias default
> node -v
v20.16.0

ん?ディレクトリを出ても元のデフォルトには戻らないみたいですね。要注意。

コメント