TTYF ~earlgrey の雑記~

主に自分用メモとか

Node.js の開発環境構築(Debian 編)

このところ業務で Node.js をやる可能性がほんのり出てきたので、開発環境の構築方法をメモしてみます。よくわかってないでとりあえずやってみてる感じなので、実用的かどうかはわかりませんが。

nvm(Node Version Manager) のインストール

Debian だったら何でも apt-get で入れたくなってしまいますが、Debian では node というパッケージ名およびコマンド名が昔から別のパッケージに使われているせいで、Node.js のものはどちらも nodejs というものに変更されており、色々面倒なんだとか。
それに Node.js はバージョンがいろいろあるので、独自のバージョン管理システムを使い、インストールおよびバージョンを随時切り替えて使用するのが一般的らしいです。
中でも nvm(Node Version Manager) というのがメジャーっぽいのでこれを使うことにします。これは各ユーザのホームディレクトリにインストールするので、root 権限はいらないし環境も汚れないのが特徴みたいです。まさに開発環境向けなんですかね。

以下概ね 公式サイト の記述に従ってインストールしていきます。

インストールは bashスクリプトをダウンロードしてきて、それを実行することで行うようです。cURL または Wget を使う方法が挙げられていますが、とりあえず cURL を使うことにします。もし入ってなければ、こちらは apt-get でインストールします。

$ sudo apt-get install curl

次の手順でダウンロードするスクリプトを見てみると、何だか Git を使ってるみたいです。別になくても別の方法でインストールしてくれるみたいですが、ここは素直に Git で行きましょう。というわけで万一入ってなければこれも apt-get。

$ sudo apt-get install git

以上で準備できましたので、cURLスクリプトをダウンロードして実行します。

$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.4/install.sh | bash

出力はこんな感じ。ところどころにある nodeuser というのは、スクリプトを実行したユーザ名です。

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  9135  100  9135    0     0  55274      0 --:--:-- --:--:-- --:--:-- 55701
=> Downloading nvm from git to '/home/nodeuser/.nvm'
=> Cloning into '/home/nodeuser/.nvm'...
remote: Counting objects: 5191, done.
remote: Compressing objects: 100% (27/27), done.
remote: Total 5191 (delta 16), reused 0 (delta 0), pack-reused 5164
Receiving objects: 100% (5191/5191), 1.39 MiB | 450.00 KiB/s, done.
Resolving deltas: 100% (3124/3124), done.
Checking connectivity... done.
* (detached from v0.31.4)
  master

=> Appending source string to /home/nodeuser/.bashrc
=> Close and reopen your terminal to start using nvm or run the following to use it now:

export NVM_DIR="/home/nodeuser/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"  # This loads nvm

.bashrc に必要な設定をしたのでターミナルを開き直すか、最後の 2 行のコマンドを実行すれば nvm が使えるよ!と言われているので、ここは開き直しで。

nvm を使った Node.js のインストール

nvm は複数バージョンの Node.js 環境を切り替えられるので、Node.js インストールの際もバージョンを指定します。以下のコマンドで現在インストール可能なバージョン一覧を出力します。

$ nvm ls-remote

省略しますが、山のように表示されてしまいました。一旦これはナシで。
先ほどのコマンドにはさらに追加のオプションがあって、LTS(long-term support)版、つまりある程度長期的に安心して使えるバージョンのものだけを表示することもできるようです。

$ nvm ls-remote --lts
         v4.2.0   (LTS: Argon)
         v4.2.1   (LTS: Argon)
         v4.2.2   (LTS: Argon)
         v4.2.3   (LTS: Argon)
         v4.2.4   (LTS: Argon)
         v4.2.5   (LTS: Argon)
         v4.2.6   (LTS: Argon)
         v4.3.0   (LTS: Argon)
         v4.3.1   (LTS: Argon)
         v4.3.2   (LTS: Argon)
         v4.4.0   (LTS: Argon)
         v4.4.1   (LTS: Argon)
         v4.4.2   (LTS: Argon)
         v4.4.3   (LTS: Argon)
         v4.4.4   (LTS: Argon)
         v4.4.5   (LTS: Argon)
         v4.4.6   (LTS: Argon)
         v4.4.7   (LTS: Argon)
         v4.5.0   (Latest LTS: Argon)

v4.5.0 が LTS 版では一番新しいっぽいですね。というわけでこいつをインストール...したいところですが、そもそも何で Node.js 環境を用意しようとしてるかというと、実は AWS Lambda で使おうとしてるからだったりします。AWS のマニュアル によると、Lambda の Node.js 対応バージョンは v0.10.36 と v4.3.2 ということなので(リンク先は英語ですが、日本語マニュアルだと v0.10.36 しか書かれていません)、今回は v4.3.2 をインストールします。

$ nvm install v4.3.2
Downloading https://nodejs.org/dist/v4.3.2/node-v4.3.2-linux-x64.tar.xz...
######################################################################## 100.0%
Now using node v4.3.2 (npm v2.14.12)
Creating default alias: default -> v4.3.2

なんか npm とかいうのが見えますが、これは JavaScript のパッケージマネージャで、Node.js をインストールすると一緒についてくるみたいです。Node.js 専用のものかはまだよく調べてないのでワカリマセン。

Visual Studio Code のインストール

開発環境というからにはエディタも必要。Linux だったらエディタは Vim を嗜むべきなのかもしれませんが、私は Vim なんてさっぱりでスクリーンエディタは nano しか使えないクソ雑魚ですので、もっと甘やかしてくれるエディタがいいです。
まぁ MS 系プログラマーとしてはやっぱり Visual Studio Code ですよね。Debian 向けに deb パッケージもちゃんと用意されてるのがありがたい。
これも cURL でゲットできるとスマートな感じですが、go.microsoft.com によるリダイレクトをうまく扱う方法がわからないので、素直にブラウザで公式サイト から deb パッケージをダウンロードしてきます。

ダウンロードできたら dpkg でインストール。アップデートの場合も同じコマンドで OK です。

$ sudo dpkg -i code_1.4.0-1470329130_amd64.deb

使用しているデスクトップ環境にもよりますが、インストールするとちゃんとスタートメニュー的なところに追加してくれるみたいです。これは LXDE の場合です。

f:id:s_earlgrey:20160821165715p:plain

もしくはターミナルから code コマンドでも起動できます。よくこのコマンド名空いてたな...。

$ code

Windows における Node.js 環境構築のガイドライン によると、Visual Studio Code では eslint/npm script runner/EditorConfig の 3 つの拡張機能がオススメされていますので、これもインストールしておきます。

f:id:s_earlgrey:20160821171300p:plainf:id:s_earlgrey:20160821171307p:plainf:id:s_earlgrey:20160821171500p:plain

最初はとりあえずこんなところでしょうか。実際に何か作ってみるといろいろ足りないものもわかってくるかもしれませんが、それはまぁぼちぼち。
(というか今兼務してる他案件でドはまり中で、Node.js どころではなかったりするのですが...。)