nodenv global not working

nodeの最新版が使いたかった。なので、globalに設定した

nodenv global 14.2.0

しかし、かわらない

$ node
Welcome to Node.js v13.12.0.

次は、localに設定してみる

nodenv local 14.2.0

これはうまくいったが .node-version というファイルが発生してしまう

不要なので、原因を探した

原因

.node-versionというファイルが親ディレクトリに存在していたのが原因だった

$ node
nodenv: version `13.12.0' is not installed (set by /root/.node-version)

これについては、nodenvに情報があった(https://github.com/nodenv/nodenv#choosing-the-node-version)

ノードバージョンの選択(翻訳しました)

シムを実行すると、nodenvは次のソースからこの順序で読み取ることにより、使用するノードのバージョンを決定します。

  1. NODENV_VERSION環境変数、指定された場合。nodenv shellコマンドを使用して、現在のシェルセッションでこの環境変数を設定できます。

  2. .node-versionファイルシステムのルートに到達するまで、実行中のスクリプトのディレクトリとその各親ディレクトリを検索して見つかった最初のファイル。

  3. .node-versionファイルシステムのルートに到達するまで、現在の作業ディレクトリとその各親ディレクトリを検索して見つかった最初のファイル。コマンドを.node-version使用して、現在の作業ディレクトリにあるファイルを変更できますnodenv local

  4. グローバル~/.nodenv/versionファイル。nodenv globalコマンドを使用して、このファイルを変更できます。グローバルバージョンファイルが存在しない場合、nodenvは「システム」ノードを使用することを想定しています。つまり、nodenvがパスになかった場合に実行されるバージョンです。

上記2,3にあるように、各親ディレクトリを検索して見つかった最初のファイルを設定する。

なので、/root/にあった、.node-version が参照されてしまった。

こいつを削除したら、nodeversionが想定通りになった。

 rm /root/.node-version

過程

nodeのバージョンが想定通りにならない

nodenv globalで設定。失敗

nodenv localで設定。成功。しかし、.node-versionが作業ディレクトリに作成される

nodenvでinstall済みのversionを削除

nodeを実行するとエラーが発生

nodenv: version `13.12.0' is not installed (set by /root/.node-version)

いろいろ調べた結果いらないと判断。削除

平和になった

最終更新