Contents
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のチュートリアル通りです。
ファイルの作成や編集は、使い慣れたエディタなどから行いたいかと思います。
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での開発の不自由さに憤りつつも、仮想マシンを立てるほどスペックに余裕のない諸兄は、是非使ってみてください。