プログラミング/nvm

(2212d) 更新


公開メモ

Node.js を複数バージョンインストールして切り替えて使うためのツール

ruby の nvm のようなもの。

インストール

https://github.com/creationix/nvm のとおりにする。

現時点では v0.33.8 になっているけれど、毎回最新版を確認すべき。

LANG:console
$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash
   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                  Dload  Upload   Total   Spent    Left  Speed
 100 12540  100 12540    0     0   183k      0 --:--:-- --:--:-- --:--:--  185k
 => nvm is already installed in /home/osamu/.nvm, trying to update using git
 => => Compressing and cleaning up git repository
 
 => nvm source string already in /home/osamu/.bashrc
 => Appending bash_completion source string to /home/osamu/.bashrc
 => Close and reopen your terminal to start using nvm or run the following to use it now:
 
 export NVM_DIR="$HOME/.nvm"
 [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
 [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion

インストール時に表示されたとおりにシェルを再起動するか、 あるいは以下のようにして最新番の nvm を有効化する。

LANG:console
$ export NVM_DIR="$HOME/.nvm"
$ [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"  # This loads nvm
$ [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"  # This loads nvm bash_completion
$ nvm --version
 0.33.8

入手可能な Node のバージョンを確認してインストール

LTS は Long Term Support の略で、長期的にバグフィックスなどのメンテナンスが行われる予定のバージョン。

LANG:console
$ nvm ls-remote | grep "Latest LTS"
        v4.8.7   (Latest LTS: Argon)
       v6.13.1   (Latest LTS: Boron)
       v8.10.0   (Latest LTS: Carbon)
$ nvm install 8.10.0
 Downloading and installing node v8.10.0...
 Downloading https://nodejs.org/dist/v8.10.0/node-v8.10.0-linux-x64.tar.xz...
 ######################################################################## 100.0%
 Computing checksum with sha256sum
 Checksums matched!
 Now using node v8.10.0 (npm v5.6.0)

パッケージマネージャ npm も新しくしておく。

LANG:console
$ npm i -g npm
 /home/osamu/.nvm/versions/node/v8.10.0/bin/npm -> /home/osamu/.nvm/versions/node/v8.10.0/lib/node_modules/npm/bin/npm-cli.js
 /home/osamu/.nvm/versions/node/v8.10.0/bin/npx -> /home/osamu/.nvm/versions/node/v8.10.0/lib/node_modules/npm/bin/npx-cli.js
 + npm@5.7.1
 added 63 packages, removed 6 packages and updated 49 packages in 7.731s

プロジェクトルートに .nvmrc を作っておくと、使用する Node バージョンを毎回指定し直す手間を省けるはず?

LANG:console
$ echo "8.10.0" > .nvmrc
$ nvm use 8.2.1
$ cd .
$ node --version
 v8.2.1

あれ、rvm と違ってフォルダーを移動しただけではバージョンは切り替わらないみたい。

LANG:console
$ nvm exec node
 Running node v8.10.0 (npm v5.7.1)
$ npm
 Usage: npm <command>
 ...

 npm@5.3.0 /home/osamu/.nvm/versions/node/v8.2.1/lib/node_modules/npm
$ nvm exec npm init
 Found '/home/osamu/sinatra/.nvmrc' with version <8.10.0>
 Running node v8.10.0 (npm v5.7.1)
 This utility will walk you through creating a package.json file.
 It only covers the most common items, and tries to guess sensible defaults.
 ...
$ nvm exec npm install riot
 Found '/home/osamu/sinatra/.nvmrc' with version <8.10.0>
 Running node v8.10.0 (npm v5.7.1)
 npm notice created a lockfile as package-lock.json. You should commit this file.
   ...

 + riot@3.9.0
 added 91 packages from 87 contributors in 5.095s
$ riot --version
   riot-cli:      4.0.1 - https://github.com/riot/cli
   riot-compiler: 3.4.0 - https://github.com/riot/compiler

ふむ、でもこれ毎回 nvm exec するの面倒だなあ。

何も指定せずに、

LANG:console
$ nvm use
 Found '/home/osamu/sinatra/.nvmrc' with version <8.10.0>
 Now using node v8.10.0 (npm v5.7.1)

とすれば切り替わるのだけれど、、、

まあこういう使い方なのかな???

コメント・質問





Counter: 3249 (from 2010/06/03), today: 2, yesterday: 6