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

Voltaが非推奨に?Node.jsバージョン管理ツールをmiseへ移行する方法

Node.jsのバージョン管理ツールとして人気のあったVoltaですが、最近では公式から将来的なメンテナンス体制に関する不安が示され、長期利用に不安を感じる開発者も増えています。
今すぐ使えなくなるわけではありませんが、将来的なNode.jsのバージョンアップへの対応や不具合修正を考えると、別ツールへの移行を検討する価値があります。
この記事では、Voltaの代替ツールとして注目されている「mise」と、Voltaからmiseへ移行する方法を解説します。

Voltaの特徴

VoltaはRust製の高速なNode.jsバージョン管理ツールで、以下の特徴があります。

  • Node / npm / yarn / pnpm のバージョン管理
  • プロジェクトごとのNodeバージョン自動切替
  • インストールが簡単
  • Windowsでも扱いやすい
  • 非常に高速

多くの開発者にとって使いやすいツールでしたが、今後の開発状況を考えると別ツールへの移行も視野に入れておくと安心です。

Voltaの代替ツール

現在よく使われているNode.jsバージョン管理ツールには以下があります。

  • nvm
  • fnm
  • asdf
  • mise

この中でも最近注目されているのが「mise」です。

続きを読む…»

29 views

Git で「2つのブランチで同じファイルが修正されているか」を調べる方法

開発を進めていると、複数のブランチで同じファイルを修正してしまい、マージのときに競合が発生することがあります。
「ブランチAとブランチBで、修正ファイルが被っているかどうかを事前に知りたい」──そんなときに役立つ方法を紹介します。

変更ファイル一覧を出力する

まず、それぞれのブランチで どのファイルが変更されたか を一覧にします。

# branch-a の変更ファイル一覧を保存
git diff --name-only main..branch-a > /tmp/a.txt

# branch-b の変更ファイル一覧を保存
git diff --name-only main..branch-b > /tmp/b.txt
  • git diff --name-only main..branch-a
    「main と branch-a の差分に含まれるファイル名」だけを出力します。

共通ファイルを抽出する

次に、2つの一覧を突き合わせて「両方に出てくるファイル」だけを取り出します。

comm -12 <(sort /tmp/a.txt) <(sort /tmp/b.txt)

ここで登場する comm コマンドは「2つのソート済みファイルを比較する」ものです。
オプションを細かく見ていきましょう。

続きを読む…»

791 views

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で明示している
  • チーム開発でツールのバージョン差異によるトラブルを防ぎたい
  • グローバルにインストールしたツールをプロジェクトごとに固定したい

続きを読む…»

1,266 views

XAMPP for Windows における SSL 有効化手順

ローカル開発環境の XAMPP に HTTPS 通信を導入するための、Windows 10/XAMPP 8.2.12 環境での手順を整理して解説します。

事前に準備するもの

  • Windows 10 環境
  • XAMPP 8.2.12
  • Git(Git Bash を利用することを想定しています)
    Git 公式サイト

PHP の OpenSSL 拡張を有効化する

PHP の設定ファイル C:\xampp\php\php.ini を開き、以下の行を見つけてコメントアウトを外します。

extension=php_openssl.dll

これにより、PHP 経由で SSL 証明書に対応できるようになります。

Apache の SSL 用 Virtual Host を設定する

Apache 設定ファイル C:\xampp\apache\conf\extra\httpd-ssl.conf を編集して、HTTPS 通信を受け入れる仮想ホストを追加します。

<VirtualHost *:443>
    DocumentRoot "C:/xampp/htdocs"
    ServerName localhost
    SSLEngine on
    SSLCertificateFile "conf/ssl.crt/my-server.crt"
    SSLCertificateKeyFile "conf/ssl.key/my-server.key"
</VirtualHost>
  • ServerName は用途に応じて変更可能です。
  • DocumentRoot のパスも実際のプロジェクトディレクトリに合わせて調整してください。

動作確認

ここまでの段階で、https://localhost にアクセスすれば、警告は表示されますが強制的にページを表示させることができます。
しかしまだ証明書を作成していないので、セキュリティ保護なしの状態でページが表示されます。

続きを読む…»

1,333 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
790 views