近年、Mac は安定した UNIX であるうえに見た目・使い勝手もよく、ハードウェアも安定供給されており特に Web 開発などですっかり開発環境としての地位を確立しています。いっぽうで家で趣味で使う PC はゲームをしたいとかハードウェア選択の自由度が高いなどの理由で Windows を使いたいという希望もあり、わたし個人的にはすっかり Mac=仕事、Windows=趣味 という、数年前とはまったく逆のイメージになりました。
ところで最近 Windows では WSL が使えるようになり、使いようによっては Mac での開発と同様のことができるようになってきています (できるとは言ってない)。以前は VMWare、VirtualBox などを使ってゲスト OS を入れないとできなかったようなことが、少ないマシンリソースで無理なくできるようになっています。しかしまだそういった使い方をする人が少なくハマる点が多いため、ここにメモを残しておきます。
目標
- WSL で趣味的な開発をしてみる
前提 (よそにたくさん情報があります)
- WSL の導入はすでにできているものとします。
- Linux は Ubuntu を使っているとします。
共通する項目
- file system は Windows として扱う
- WSL から Windows FS は /mnt/c のように見えます (drvfs)
- Windows から WSL のファイルを触ろうとするとハマります
- cifs として mount したほうが効率がよかったりするのかもしれません
- こちらとかが詳しいです → Windows Subsystem for Linuxのファイルシステムにおける注意点
- Windows Defender の除外設定
- やってみよう: React Native を参照してください
- 別の Terminal を使う
- Java + Gradle を使う
- node (npm) を使う
- ...
WSL でやってみよう
- Angular ★★★★ 実用レベル
- React Native ★★★ 難あり
- Flutter ☠ 無理
忙しい人への結論
個人的な意見になりますが、現状 2018年2月 の WSL は何をするにもまだまだハマるポイントが多く、あたらしいことをしようとするたびに環境構築のほうに時間をとられがちになります。罠をたのしむ余裕がなければ実績のある方法をおすすめします。