Windowsでも開発がしたい! Bash on Ubuntu on Windowsで整えるNode.js開発環境

Windowsで開発がしたい

こんにちは。

唐突ですが、皆さんの開発環境ってどんな感じですか?

たぶんWindowsの方が大多数だと思うんです。
かく言う自分もメインマシンはWindowsです。

でもWindowsで開発するのって、結構面倒なことが多いんですよね。

良さげなツールを使おうと思ってもWindowsでは使えなかったりとか、
Qiitaの記事を読んでみたら、さもMacを持っているのが当然かのようにHomebrewでインストールを行っていたり。

WindowsでBashが動く?!

昨年の夏くらいでしょうか。
Bash on Ubuntu on Windowsという機能で、Windows 10の上でBashが動くようになりました。

…前置きが長くなりすぎている気がするので本題に移ります。
細かいアーキテクチャなどの説明は省きます。

Bash on Ubuntu on Windowsで、Node.jsの開発環境を整えてみます。

BoWのインストール

インストールに関しては既に数多くの情報があるため、そちらを参照して頂くのが良いと思います。

Installation guide
Bash on Ubuntu on Windowsとは? そのインストールと使い方

注意点として、余計なエラーを招かないためにも、言語設定はさっさとen_US.UTF8にしておくのが吉です。

ConEmuのインストール

ちょっと寄り道です。
(BoWと使うだけなら必須ではありません)

BoWのインストールが完了し、スタートメニューから起動すると、
コマンドプロンプトで見慣れた黒い窓が開きます。

あれダサいですよね。

なので、ConEmuいうコンソールエミュレータを使います。
簡潔に紹介すると、コマンドプロンプト(PowerShellやBoWも)の見てくれをかっこよくしてくれるすごいやつ。

インストールも超簡単で、BoWがインストールされていたら勝手に認識してくれます。
フォントもアンチエイリアスが効いて綺麗になるので、是非使ってみてください。

Node.jsのインストール

Node.jsのインストール方法は、apt-getで直接、nvm、ソースからビルド…などなどありますが、
今回はnというバージョン管理ツールを使います。

nはnodeで作られているので、一旦aptでnodeとnpmをインストールします。
aptコマンドは、apt-getとapt-cacheをひとまとめにしたコマンドだそうです。

$ sudo apt install nodejs npm

次に、npmからnをグローバルでインストール。

$ npm i -g n

最後に、nを使ってご所望のバージョンのnodeをインストールします。
今回はLTSをインストール。

$ n lts

ちょうかんたん。

仕上げで、aptでインストールしたnodeとnpmを消します。
aptでインストールしたそれは/usr/bin以下に、nでインストールしたそれは/usr/local/bin以下に配置されるのですが、
このままだとパスの優先度からapt-getでインストールした古いバージョンのnodeが使われてしまうためです。

$ sudo apt remove nodejs npm

確認。

$ node -v
v6.10.3
$ npm -v
3.10.10

めっちゃかんたん。

Expressでサクッとサーバを立ててみる

これはほとんどExpressのチュートリアル通りです。

Installing Express

ファイルの作成や編集は、使い慣れたエディタなどから行いたいかと思います。

BoWからWindows上のファイルを見るとき、Windows上のCドライブは /mnt/c にマウントされています。
逆にWindowsからBoWのファイルを見るとき、%LOCALAPPDATA%\lxss がルートディレクトリに対応しています。

今回は、プログラムはC:\myapp以下に置くことにします。
BoWで作業するとき、ホームディレクトリより上で作業するのはなんとなく気持ち悪いので、シンボリックリンクを張ります。

$ ln -sf /mnt/c/myapp ~/myapp

さあ、あとはサクラエディタなりnodepad++なり、お気に入りのエディタでサンプルプログラムを写経(あるいはコピペ)するだけです。
別にBoW上のvimを無理して使う必要はありません。
保存先はC:\myapp\app.jsとしましょう。

さて、実行してサーバが走り始めたら、Windows上のブラウザから確認してみましょう。

何の問題もなく動いてますね。

まとめ

今回、Bash on Ubuntu on Windowsを使ってNode.jsを動かしてみました。
他にも記事には書いていませんが、Ruby、Pythonも動かしてみました。

個人的な感想は、正直「VirtualBoxでいいかな」という感じです。
ただ、BoWのほうがPCのリソースを食いませんし、起動もめちゃ早です。

Windowsでの開発の不自由さに憤りつつも、仮想マシンを立てるほどスペックに余裕のない諸兄は、是非使ってみてください。