npmとnodeのバージョンを指定してアップデート/インストールする方法

Node-js

古いサービスのメンテナンスをしている時に、npm installを実行し、npm run devでコンパイルしようとしたところ、依存関係のパッケージでsyntaxが読み込めないというエラーが発生した。

npmとnodeのバージョンを上げれば対応できそうとのことだったが、バージョンを最新にするのは確認が取れていないのでNG。指定してアップデートする必要があるとのこと。

npmとnodeのバージョンを指定してアップデートする方法について。

npmとnodeの現在のバージョンを確認

npm -v と node -vで現在のバージョンが確認できる。-v は –versionの略。

bash-4.2# node -v
v6.14.4

bash-4.2# npm -v
3.10.10

現在のnodeのバージョンは6.14.4、npmのバージョンは3.10.10。これを、nodeは8.0.0、npmは5.0.0まで上げる。

npmはnodeに合ったバージョンが自動でインストールされる。なので、node v8.0.0をインストールすれば自動でnpmのバージョンもv5.0.0に切り替わる。

パッケージ「n」のインストール

node.jsのパッケージ管理ツールである「n」をインストールする。npm install -g n を実行。

bash-4.2# npm install -g n

/usr/bin/n -> /usr/lib/node_modules/n/bin/n
/usr/lib
`-- n@7.2.2

github公式 n

「n」の中にnodeをインストールする

パッケージnの中で好きなnodeのバージョンを切り替えることができる。そのためにはまず、nの中にnodeパッケージをインストールする必要がある。

n <バージョン> を実行。

bash-4.2# n 8.0.0

  installing : node-v8.0.0
       mkdir : /usr/local/n/versions/node/8.0.0
       fetch : https://nodejs.org/dist/v8.0.0/node-v8.0.0-linux-x64.tar.gz
   installed : v8.0.0 (with npm 5.0.0)

nの中にnode v8.0.0のインストールが完了。npmはnodeのバージョンに合わせて適切な物が入っている。

node v8.0.0とセットになっているのはnpm v5.0.0。

なお、installedがでた時点でそのバージョンに自動で切り替わっている。

nodeバージョンの切り替え

いよいよローカルのnodeバージョンを切り替える。コマンド n を実行すると、nの中にインストールされているパッケージ一覧が別ウインドウで表示される。

上下キーで選択し、Enterをクリック。

  ο node/8.0.0
    node/8.17.0

Use up/down arrow keys to select a version, return key to install, d to delete, q to quit

以上で設定が完了。

bash-4.2# n
   installed : v8.0.0 (with npm 5.0.0)

「n」でバージョンが切り替わらない時の対処法

バージョンの切り替えを実行したが、バージョンが切り替わらない状況が発生した場合の対処法。

例えば以下のように、v8.0.0にしたのに、バージョンを確認すると元のv6.14.4が表示されてしまう。

bash-4.2# n
   installed : v8.0.0 (with npm 5.0.0)
bash-4.2# node -v
v6.14.4


docker上でUbuntuを使っている時などに発生する。一旦コンテナからexitで抜けて、再度コンテナに入って確認すると、バージョンが切り替わる。

bash-4.2# node -v
v8.0.0
bash-4.2# npm -v
5.0.0

目的のバージョンに切り替わった!以上で完了。

タイトルとURLをコピーしました