NVS
NVS は Node.js 環境を管理できるツールである。
GitHub - jasongin/nvs: Node Version Switcher - A cross-platform tool for switching between versions and forks of Node.js
NVM と異なり、Windows でも使える。
インストールする (Windows)
Windows でのインストールはインストーラーを実行する。
インストールする (Linux)
Linux でのインストールは以下のコマンドを実行する。
| # インストールする
$ export NVS_HOME="$HOME/.nvs"
$ git clone https://github.com/jasongin/nvs "$NVS_HOME"
$ . "$NVS_HOME/nvs.sh" install
|
コマンドを実行すると~/.bashrcに環境変数が追加される。
| ~/.bashrc |
|---|
| # NVS
export NVS_HOME="$HOME/.nvs"
[ -s "$NVS_HOME/nvs.sh" ] && . "$NVS_HOME/nvs.sh"
|
NVS を使う
nvsコマンドを実行する。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 | # インストール可能なNode.jsの一覧を表示する
$ nvs ls-remote
# 新しい順のLTS版上位10件を表示する
$ nvs ls-remote | grep \( | head -n 10
# Node.jsをインストールする
$ nvs add 22.20.0
# インストール済みのNode.jsの一覧を表示する
$ nvs ls
# デフォルトのNode.jsのバージョンを設定する
$ nvs link 22.20.0
# Node.jsをアンインストールする
$ nvs rm 22.20.0
# 上記が駄目だったらこれ
$ nvsudo rm 22.20.0
|
sudo コマンドで node を実行できないので、visudo を使って環境変数を設定するべき。
NVS のヘルプコマンド日本語訳
| コマンド |
説明 |
nvs help <command> |
コマンドの詳細なヘルプを取得する。 |
nvs install |
NVS を使用するためのプロファイルを初期化する。 |
nvs --version |
NVS ツールのバージョンを表示する。 |
| - |
- |
nvs menu |
インタラクティブ メニューを起動する。 |
nvs add <version> |
node のバージョンをダウンロードして抽出する。 |
nvs rm <version> |
node のバージョンを削除する。 |
nvs merge <fromver> [tover] |
グローバル モジュールを移行する。 |
nvs upgrade [fromver] |
メジャーバージョンの最新パッチへアップグレードする。 |
| - |
- |
nvs use [version] |
現在のシェルで node のバージョンを使用する。 |
nvs auto [on/off] |
cwd に基づいて自動的に切り替える。 |
nvs run <ver> <js> [args...] |
node のバージョンを使用してスクリプトを実行する。 |
nvs exec <ver> <exe> [args...] |
node のバージョンを使用して実行可能ファイルを実行する。 |
nvs which [version] |
node のバージョンバイナリへのパスを表示する。 |
| - |
- |
nvs ls [filter] |
ローカル node のバージョンをリストする。 |
nvs ls-remote [filter] |
ダウンロード可能な node のバージョンをリストする。 |
nvs outdated |
ローカル node のバージョンと利用可能なアップデートをリストする。 |
| - |
- |
nvs link [version] |
バージョンをデフォルトとしてリンクする。 |
nvs unlink [version] |
デフォルトのバージョンへのリンクを削除する。 |
| - |
- |
nvs alias [name] [value] |
バージョンのエイリアスを設定または呼び出す。 |
nvs remote [name] [uri] |
ダウンロード ベース URI を設定または呼び出す。 |
| バージョン文字列は、セマンティックなバージョン番号またはバージョン ラベルで構成されます。
("lts"または"latest")、オプションで前にリモート名が続きます。
その後にスラッシュで区切られたアーキテクチャが続きます。
例: "lts"、"4.6.0"、"6.3.1/x86"、"node/6.7.0/x64"
エイリアスは、バージョン文字列の代わりにどこでも使用できます。
|
NVS でグローバルにインストールしたパッケージを更新・削除する
グローバルにインストールしたパッケージの更新が上手くいかない。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 | $ ncu -g
[====================] 4/4 100%
some-package 2.156.0 → 2.158.0
corepack 0.29.3 → 0.29.4
ncu itself cannot upgrade global packages. Run the following to upgrade all global packages:
npm -g install some-package@2.158.0 corepack@0.29.4
$ sudo npm -g install some-package@2.158.0
npm error code ENOTEMPTY
npm error syscall rename
npm error path /home/{ユーザー名}/.nvs/node/20.17.0/x64/lib/node_modules/some-package
npm error dest /home/{ユーザー名}/.nvs/node/20.17.0/x64/lib/node_modules/.some-package-0HUmid0N
npm error errno -39
npm error ENOTEMPTY: directory not empty, rename '/home/{ユーザー名}/.nvs/node/20.17.0/x64/lib/node_modules/some-package' -> '/home/{ユーザー名}/.nvs/node/20.17.0/x64/lib/node_modules/.some-package-0HUmid0N'
npm error A complete log of this run can be found in: /root/.npm/_logs/2024-09-17T05_44_24_101Z-debug-0.log
|
パッケージのディレクトリを直接削除して再インストールする。
| $ rm -rf ~/.nvs/node/20.17.0/x64/lib/node_modules/some-package
$ npm -g install some-package
|