ludwig125のブログ

頑張りすぎずに頑張る父

WSLからHTMLファイルをChromeで開く

概要

WSL上で、HTMLファイルをChromeで開く方法がすぐ見つからなかったのでエイリアスを定義して簡単にできるようにした

結論

.zshrcまたは.bashrcに以下のようなエイリアスを書いておけばいい

alias chrome='(){/mnt/c/Program\ Files\ \(x86\)/Google/Chrome/Application/chrome.exe $(wslpath -w $(realpath $1))}'

実行例

$chrome /tmp/cover302247211/coverage.html

=> HTMLがローカルPCのChromeで開く

参考

www.reddit.com

説明

1.chromeのパスを確認

自分はChromeWindowsのCドライブのProgram Files (x86)以下にあるので、

$ls /mnt/c/Program\ Files\ \(x86\)/Google/Chrome/Application/chrome.exe
'/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe'*

このパスを指定すればChromeでHTMLファイルが開く

ちなみにURLを指定するとそのページが開く

 /mnt/c/Program\ Files\ \(x86\)/Google/Chrome/Application/chrome.exe https://www.yahoo.co.jp/

=> yahooがChromeで開く

2.HTMLファイルのWindows上でのパスを取得する

このようなファイルをWSL上で扱っているとして、/tmp/cover302247211/coverage.html

Windows上でのパスを取得するには以下のようにすればいい(Windows 10の場合)

 $wslpath -w $(realpath /tmp/cover302247211/coverage.html)
\\wsl$\Ubuntu\tmp\cover302247211\coverage.html

3.関数化する

以上を踏まえたうえで、chrome XXXX.html のコマンドだけでHTMLファイルを開けるように関数化する

alias chrome='(){/mnt/c/Program\ Files\ \(x86\)/Google/Chrome/Application/chrome.exe $(wslpath -w $(realpath $1))}'

このようにすることで、$1に引数が入って、そのWindows上でのパスが得られ、それをChromeで開くことができる