node.jsのバージョンを切り替えるお手軽な方法
目次
・なぜバージョン管理が必要か?
・macとwindowsで定番のNode.jsバージョン管理ツールは?
・nvm と nodist のインストール
●なぜバージョン管理が必要か?
本日はこれからメインで開発を進めていくjavascript開発環境である
「node.js」(Nodejsなのか、nodejsなのか、はたまたNode.jsなのか?本当の表記が未だに分からず)
のバージョンを切り替える方法について少し紹介しましょう。
私は自宅ではMacOSXを使い、会社ではwindowsをメインに使っています。
node.jsは進化が猛烈に早いので、ちょっと「ぼぉ〜」っとしているとすぐにバージョンが2つや3つ上がってしまいます。
今作っているシステムやアプリケーションが上位版のnode.jsで問題なく動くかどうか確認せずに、node.jsのバージョンを上げてしまって不都合が発生して慌てる事態になったことも数回あります。(かなり間抜けな行為でした)
特にwindowsとmacの両方で開発を進めている場合、macでは大丈夫なんだけれどwindowsでは不都合が発生するケースって度々あります。
まあ、macは表っ面は綺麗に装飾されていますが内部はUNIX系のOSですから、windowsと相性が悪くても仕方ないのですね。
なので「あれ?」って思った時に過去のバージョンにすぐに切り替えが出来ないと、何度もインストールとアンインストールを繰り返して、最後はOSそのものから不安定なって全体を再構築するなんていう「無間地獄」に陥ったりします。
●macとwindowsで定番のNode.jsバージョン管理ツールは?
ネットで検索すると
mac用のバージョン管理ツールは
・nodebrew
・ndenv
・nodenv
・nvm
など様々なツールが提供されています。
windows用を検索すると
・nvmw (nvmのwindows版)
・nodist
などがあるようです。
何を入れるかはほぼ「導入時期と個人の好み」の問題だとは思いますが、私は
・mac -> nvm
・windows -> nodist
を導入しました。
理由は、当時お付き合いのあったコンサルタントさんが「これが良いと思いますよぉ〜」っていう推薦があったからです。
● nvm と nodist のインストール
macでnvmを導入するのは以下のサイトをみて実施しました。
コンソールにて
nvm --version
と打ってバージョンが表示されれば成功です。
node.jsに現在いくつのバージョンがリリースされているかは
nvm ls-remote
と打てばリストが表示されます。
もし、v9.9.0をインストールしたければ
nvm install v9.9.0
とすれば良いです。
ちなみに、自分の環境に今どのバージョンが入っているかは
nvm ls
で確認出来ます。
私の環境では
v5.0.0
v6.2.1
v7.10.0
v7.10.1
v8.9.4
-> v9.9.0
default -> stable (-> v9.9.0)
node -> stable (-> v9.9.0) (default)
stable -> 9.9 (-> v9.9.0) (default)
iojs -> N/A (default)
のように表示されました。defaultがv9.9.0になってますね。
nodistのインストールは
からモジュールを取得します。
リリースページから最新版(2018-06-09現在 v0.8.8)をダウンロードしてインストールします。
さすがwindowsなのでSetup.exeになっているので簡単にインストールできるでしょう。
リリースされているnodeのバージョンを確認するには
nodist dist
のようにコマンドを打ちます。
v9.9.0をインストールする場合は
nodist + 9.9.0
と指定してインストール。
そして、v9.9.0をデフォルトにするには、
nodist 9.9.0
と打ちます。
これでいつでも指定したnode.jsのバージョンに設定することができるようになりました。
bot製作にはそれなりの時間と労力がかかります。
環境はしっかり整えておいた方が良いですね。
ご期待いただければ「スキ」ボタンをポチっと、「フォロー」ボタンをクリック、よろしくお願いいたします。
note: https://note.mu/o_matsuo
twitter: @o_matsuo
もフォローしてくださると、喜びます。
あ、それから私の師匠である
コンドウ様のnoteもポチっとしていただけると、さらに喜びます。
みなさんと一緒に、楽しいBotライフを🎵
ソフトウェア・エンジニアを40年以上やってます。 「Botを作りたいけど敷居が高い」と思われている方にも「わかる」「できる」を感じてもらえるように頑張ります。 よろしくお願い致します。