Windwos Subsystem for Linux を web 開発用途で試す

by mmyoji

4 min read

はじめに

Windows Subsystem for Linux (以下 WSL, a.k.a. Bash on Ubuntu on Windows) を web 開発にどの程度使えるか、興味があったので、ゲーム用途で手に入れた Windows 10 Home で試してみた。

今回試そうとしたのは以下の言語

  • Ruby
  • Node.js
  • Golang

結論

比較的限定された用途としてしか使えない。

Linux としては思った以上にちゃんと動くので個人的には満足している。(たまたま自分がハマるソフトウェアを試さなかっただけかもしれないが)

Windows10 Pro なら Docker for Windows が使えてまた違った感想になると思う。 Home だと Docker Toolbox を使うしかないので、 WSL を使う意味はない。

キーリピートの調整

デフォルトだと遅いので、キーボードの設定から多少は速くできる。

自分はそれで十分だった。

Terminal

コマンドプロンプトはキツかったので Hyper を入れてみた。

割りといい感じだったのでひとまず使っている。

日本語を表示する際に崩れるので、日本語を terminal で表示することが多い人には向かないと思う。

Editor

普段は NeoVim を使っているが、どうせ Windows を使うならと VSCode を使ってみた。

素のキーバインドはさすがにキツかったので Vim plugin を入れたのと、あとは自分が書く言語の plugin を入れたくらい。

体験としては悪くなかったがさすがに普段使ってる NeoVim よりはもっさりとしてる印象だった。

Markdown, Ruby, Golang, HTML, CSS, JS あたりを少し書いた程度。

/home/mmyoji などの Windows から直接見れないようなファイルは編集しても思った位置に保存されてなかったりしたので、 .bashrc などは Hyper から vi で編集したりした。

言語の install

node(npm), ruby, golang あたりを入れてみた。

ほぼ Ubuntu と同様の方法で入るので特に困らなかった。

自分は node は n, ruby は rbenv, golang は releases からインストールしたが、 anyenv とかを使う場合は検証してない。 ruby ぐらいしか version を気にしてないので自分は anyenv 使うほどではないなと思って使わなかった。

Go は VSCode で編集しようとすると、 bash 側の GOROOT などを見てくれないみたいで、ひたすら怒られてまともに編集させてもらえない。 Vim で編集するしかないなという感じになりかなり厳しい。VSCode 側も対応を保留しているみたいな記事をどこかで読んだが、ちゃんと対応してほしい。

現時点では Go に関しては Ubuntu ではなく、 Windows に直接入れた方がいいかもしれない(VSCode を使いたいなら)。もしくは terminal で Vim や Emacs などを使う。

Docker

普段 web アプリを開発する上で必須と言ってもいい Docker だが、前述したように Win10 Home + WSL だと厳しい。

Docker for Windows は Win10 Pro とかじゃないと使えないので、必然的に Docekr Toolbox を使うことになるが、それだと結局VirtualBox 上で動かしているだけなので WSL を使う意味とは...となる。

仮に Win10 Pro にして Docker for Windows を入れたとしても少しハックをしないと WSL で使うことはできないということが少しググればわかる。色々ハマりそうなので現実的ではないと思ってる。

もしかしたらいい方法があるのかもしれないが、自分は見つけられなかった。

その他

基本的に WSL とホストの Windows 側とで IP や Port は共有されてるみたいなので、 npm の http-server とかを WSL で起動して、 Windows のブラウザとかで localhost:8080 とかにアクセスしたら普通に見れる。ここらへんは特に何も設定しなくても動いてよかった。

ただ、自分はブログの生成に hugo を使っているが、それがなぜか初回うまく動かなかった。 hugo server コマンド自体は動いているように見えたが、対象IPにアクセスしても空の HTML しか吐かれてなかったのでどこかでうまくいってないはず。

一度再起動してもう一度試したら動いたので、もし同様の現象が起きた人は再起動してみてほしい。困ったら再起動。

個人的に Windows で一番うれしかったのはいろんなところでフォントが好みだったこと。 GitHub を Windows から初めて見たときはほんとに嬉しかった。いいフォントです。

おわり