【ITニュース解説】Install NVM for Windows Without Administrator
ITニュース概要
Windows版NVMを管理者権限なしでインストールする方法を紹介。通常はインストーラーを使うが、管理者権限がない場合、zipファイルをダウンロードし、設定ファイルを作成。環境変数をユーザーレベルで設定することで、Node.jsのバージョン管理が可能になる。コマンドプロンプトから`nvm install latest`で最新版をインストールし、`nvm use`でバージョンを切り替える。
ITニュース解説
Node.jsはJavaScriptをサーバーサイドで実行するための環境で、Webアプリケーション開発に広く使われている。nvm (Node Version Manager) は、Node.jsのバージョンを簡単に切り替えて管理できる便利なツールだ。通常、Windowsでnvmを使うにはインストーラーを使うが、管理者権限が必要となる場合がある。この記事では、管理者権限がない環境でもnvmを導入する方法を解説する。 まず、nvm-windowsのリリースページから、インストーラーを使わない「nvm-noinstall.zip」というパッケージをダウンロードする。ダウンロードしたzipファイルを、書き込み可能な任意の場所に展開する。例えば、「D:\_WIP\Download\nvm-noinstall」のようなフォルダが良いだろう。 次に、展開したフォルダの中に「settings.txt」という名前のテキストファイルを作成し、以下の内容を記述する。 ``` root: D:\_WIP\Download\nvm-noinstall path: D:\_WIP\Download\nvm-noinstall\nodejs arch: 64 proxy: none ``` 「root」はnvmがNode.jsのバージョンを保存する場所、「path」は現在使用するNode.jsの実行ファイルへのシンボリックリンク先を示す。「arch」はCPUのアーキテクチャ(通常は64ビット)、「proxy」はプロキシサーバーを使用する場合に設定する。プロキシサーバーを使わない場合は「none」と記述する。 続いて、展開したフォルダの中に「nodejs」という名前のフォルダを作成する。これは、「settings.txt」で指定した「path」に対応するフォルダで、現在アクティブなNode.jsのバージョンへのシンボリックリンクが作成される場所となる。 次に、コマンドプロンプトを開き、以下のコマンドを実行してNode.jsをインストールする。 ``` nvm install latest ``` これにより、最新バージョンのNode.jsがダウンロードされ、nvmによって管理されるようになる。管理者権限は不要だ。 次に、環境変数を設定する。通常、環境変数の設定には管理者権限が必要だが、ユーザーレベルの環境変数であれば設定可能だ。以下の2つの環境変数をユーザー環境変数に追加する。 * `NVM_HOME`: nvmのインストールディレクトリ(例: `D:\_WIP\Download\nvm-noinstall`) * `NVM_SYMLINK`: 現在使用するNode.jsへのシンボリックリンク先(例: `D:\_WIP\Download\nvm-noinstall\nodejs`) さらに、`Path`環境変数に以下の2つを追加する。これにより、コマンドプロンプトから`nvm`コマンドや`node`コマンドを実行できるようになる。 * `%NVM_HOME%` * `%NVM_SYMLINK%` 環境変数の設定後、コマンドプロンプトを再起動するか、新しいコマンドプロンプトを開いて設定を反映させる。 最後に、nvmが正しくインストールされたかを確認する。以下のコマンドを実行して、利用可能なNode.jsのバージョンを確認する。 ``` nvm list available ``` インストール済みのバージョンを確認するには、以下のコマンドを実行する。 ``` nvm list ``` Node.jsのバージョンを切り替えるには、以下のコマンドを実行する。例えば、バージョン20を使用する場合は以下のようになる。 ``` nvm use 20 ``` 以上の手順で、管理者権限がなくてもnvmを使ってNode.jsのバージョンを管理できる。nvmを使うことで、複数のプロジェクトで異なるバージョンのNode.jsが必要な場合でも、簡単に切り替えて開発を進めることが可能になる。 もし、Node.js以外のJavaScriptランタイムに興味があれば、Bunという選択肢もある。Bunは高速で、バンドラーやトランスパイラなどのツールが内蔵されているため、より効率的な開発が可能になるかもしれない。