Windows 版 node / nodist
フロントエンドの開発を行う際に、最早必須とも言える node ですが Windows 環境にインストールすると微妙に動かなかったりするものが混じっていますが、mac の人に質問しても「知らない」とスルーされて辛かったりします。
Windows 上のエディタで開発してブラウザで確認、bash 側で node環境(ビルド、開発用サーバ起動)という環境にすれば、Windows のまま快適な開発ライフを送れると思ったのですが、2017/03/09 時点で壊滅的に日常使い出来ない点と、フロントエンド開発に使えない点がありましたので、お伝えしたいと思います。
(理由その1) mv コマンドでフリーズする!
Windows 上のファイルは、bash では、/mnt/c/ 以下にマウントされます。
大変分かりやすく見やすいのですが、/mnt/c/Users/ 以下のフォルダで、mv コマンドを使用するとフリーズします。
フリーズするサンプル
$cd /mnt/c/Users/<ユーザ名>/
$mkdir test1
$mkdir test2
$mv test1 test2
mvコマンドでフリーズすると、Windows を再起動するまで bash は使用できなくなります。
※ c:\ 直下にファイルを置けば回避できるようではあります。
参考:
Bash.exe hangs and the bash is unusable
(理由その2) fs.watch が動かない
Windows 側で保存したファイルを、bash 側が変更を監視してビルド…が、できません。
参考:
fs.watch not work in win10 Bash.
(理由その3) Windows 側から bash 側のネットワークが見えない
bash 側で開発サーバを立ててライブリロード…が、できません。一応ワークアラウンドはあるようですが…WSL対応のために何かするのも少し悩ましいところです。
参考:
Node http-server not working on Windows 10 Ubuntu Bash
(おまけ) 日本語が文字化けする
MS-DOSプロンプトがUnicodeに対応していません。コードページ切り替えでなんとなく表示されるようになりますが、それでも表示が崩れたりと実用レベルにはなっていないという印象です。PowerShellから起動しても、細かくうまく動かない感じでした。(あまり試してませんが)
ただ、こちらについては、Visual Studio Code のターミナルを利用すれば、今のところ不具合なく使えてますので、理由からは除外したいと思います。むしろ Visual Studio Code は軽くて快適なので積極的に使いたい感じです。
VSCode のterminal を ファイル→基本設定→設定で、settings.json を開いて、PowerShell から bash に変更。
settings.json
"terminal.integrated.shell.windows": "C:\\WINDOWS\\Sysnative\\bash.exe",
とは言え、ちょっとした用途には便利に使ってたりしますので、上記についても、いや、実はできるよ!最近のリリースで対応されたよ!というのがありましたらコメント頂けると助かります。