カテゴリー
SugiBlog Webエンジニアのためのお役立ちTips

fnmからVoltaへ乗り換える理由と手順

Node.jsのバージョン管理ツールとして人気のある「fnm(Fast Node Manager)」から「Volta」への乗り換えを検討している方に向けて、両者の違いと移行手順、そしてVoltaを選ぶべきケースについて解説します。

fnmとVoltaの比較

項目 fnm Volta
開発言語 Rust Rust
速度 非常に高速 高速(shim機構でわずかに遅い場合あり)
Node.jsバージョン管理 あり あり
package.json 連動(volta フィールド) なし あり(pin で自動記録・使用)
package.json の engines 読み取り なし あり(CIや警告用途)
.node-version / .nvmrc 対応 あり(自動切り替え対応) あり(読み取り対応。ただし自動 pin ではない)
グローバルツールのバージョン管理 なし(npm -g をそのまま使う) あり(volta install で固定・再現可能)
再現性のあるCI環境構築 やや工夫が必要 容易。package.json の volta フィールドを使用
シェル統合のしやすさ 手動設定あり(シェルrcへの追加必要) 自動設定(インストーラが対応)

Voltaを選ぶべきケース

以下のようなケースでは、Voltaへの乗り換えが強く推奨されます。

  • CI環境でpre-commitやlint-stagedなどを実行している
  • Node.jsやnpmのバージョンをpackage.jsonで明示している
  • チーム開発でツールのバージョン差異によるトラブルを防ぎたい
  • グローバルにインストールしたツールをプロジェクトごとに固定したい

続きを読む…»

56 views

PowerShellのバージョン確認方法

$PSVersionTableコマンドで確認することができます。

PS C:\> $PSVersionTable

Name                           Value
----                           -----
PSVersion                      5.1.19041.5848
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.19041.5848
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
199 views

Gitで削除したブランチを復活させる方法

Gitでソース管理しているプロジェクトを開発する中で、間違って必要なブランチを削除してしまったら、もう取り戻せないのでしょうか?
そんなことはありません!ご安心ください。
間違って削除してしまったブランチを復活させる方法がありましたのでご紹介します。

検証環境:git version 2.39.2.windows.1

まずは履歴から該当ブランチの最後のコミットを探します。
Gitの変更履歴を表示するには以下のようなコマンドを実行します。

git reflog

コマンドを実行すると次のように履歴が表示されます。

66ee5fa HEAD@{0}: checkout: moving from mybranch to master
4bba15a HEAD@{1}: commit: commit message
fc11042 HEAD@{2}: checkout: moving from master to mybranch
...

表示された履歴から該当ブランチの最後のコミットを見ると2行目のHEAD@{1}がそれにあたります。
{}の中の数字はログ番号です。

続きを読む…»

243 views

Node.jsバージョン管理ツール「fnm」の導入

プロジェクト毎にNode.jsのバージョンを管理したいときに便利なツール「fnm(Fast Node Manager)」の導入方法をご紹介します。
他にも同様のツールがありますが、導入のしやすさと定期的にメンテナンスされているという点で「fnm」を選択しました。

https://github.com/Schniz/fnm

Chocolateyをインストール

まずはfnmの導入に必要なパッケージマネージャー「Chocolatey」をインストール
https://chocolatey.org/install

PowerShellを管理者として実行し、以下のコマンドを実行

Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))

インストールできたか確認してみましょう。

choco -v
> 2.4.3

fnmのインストール

早速fnmをインストールしてみます。

choco install fnm -y

プロジェクトごとに指定されたNode.jsのバージョンを使うというPowerShellで実行するコマンドをPowerShellの起動スクリプトに追記します。
起動スクリプトが存在しない場合は新規で作成します。

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

起動スクリプトのパスは$profileと入力すると表示されます。
例)Windows10 PowerShell5.1の場合

> $profile
C:\Users\{username}\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

正常にインストールが完了したか確認

fnm -V
> fnm 1.38.1

又、wingetというWindowsのパッケージマネージャーを使ってもインストールすることができます。
https://learn.microsoft.com/ja-jp/windows/package-manager/

fnmのインストール

winget install Schniz.fnm

公式サイトにもwinget+fnmを使ったインストール方法が記載されています。2025/03/10時点
https://nodejs.org/ja/download

続きを読む…»

506 views

Invoke-WebRequestとcurlコマンドでHTTPリクエスト

Invoke-WebRequestとcurlコマンドを使えばCUI(Commandline User Interface)にてHTTPリクエストを送信することができます。
ここでは基本的な使い方をご紹介します。

Windowsの場合

まずはWindowsの場合です。
PowerShellでInvoke-WebRequestコマンドを使います。

このコマンドにはエイリアスが設定されており、curl iwr wgetでも使えます。
curlはあくまでエイリアスなので、Linux・Macでのcurlとは異なりますのでご注意ください。

GETリクエスト
Invoke-WebRequest https://www.hoge.jp
Invoke-WebRequest -Method GET https://www.hoge.jp

パラメータを付加したリクエスト

Invoke-WebRequest https://www.hoge.jp?key=value&key=value
Invoke-WebRequest -Method "GET" -Body @{key="value";key="value"} https://www.hoge.jp
POSTリクエスト
Invoke-WebRequest -Method "POST" -Body 'key=value&key=value' https://www.hoge.jp
Invoke-WebRequest -Method "POST" -Body @{key="value";key="value"} https://www.hoge.jp

続きを読む…»

6,987 views