プログラミング/nvm の変更点

更新


[[公開メモ]]

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

ruby の nvm のようなもの。

* インストール [#mc0f3bed]

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)

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

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

* コメント・質問 [#aaa6a4fc]

#article_kcaptcha


Counter: 2147 (from 2010/06/03), today: 1, yesterday: 2