工作這幾年,雖然也有在伺服器上用 vim 開發的經驗,但是個人的工作環境一直是 windows,要說為什麼,一個是不太喜歡 Mac 稍顯封閉的風格(Linux 就不說了,軟體太少),再一個這幾年 windows 也在不斷的改善自己,使自己的產品變得更加方便好用,我喜歡這種不斷改變嘗試的風格,可能也是情懷的一種吧
為了使自己的工作環境更加方便,前後使用了 git bash , cygwin 等模擬 linux 命令列的工具,但都有這樣那樣的問題,直到前不久 windows 更新發布了 windows 子系統 WSL(Windows Subsystem for Linux) ,這是微軟面向開發者的又一次嘗試,畢竟是一個完整的 linux 系統,命令列的體驗上比模擬器不知道高到哪裡去了,因此我看好這個系統,也將自己的工作中心遷移到 WSL 裡,在這裡給大家分享一下,希望還堅持在 windows 下的前端er能通過這篇文章打造出自己心目中理想的工作站
1. 安裝 WSL
1.1 開啟 WSL 功能
首先需要在 windows 的 [ 啟用或關閉 Windows 功能 ] 中開啟 [ 適用於 Linux 的 Windows 子系統 ]
1.2 下載 Linux
去應用商店搜尋 Linux 就會看到目前提供的三個 Linux 子系統,在這裡我選擇了經典的 Ubuntu
經過上面的步驟,基本命令列工作空間已經搭建起來了,但是我們肯定不能就這麼在命令列裡寫程式碼,最後還是要回歸到 IDE 裡面來,那麼這就有個很嚴峻的問題了,雖然 Linux 系統在 windows 下可以執行的很完美了,但說到底還是兩個系統,他們的檔案型別不同,許可權系統也天差地別
我曾經天真的通過 IDE 直接開啟 WSL 下的專案,是的,你可以在 windows 檔案資源管理器 裡找到 WSL 下的所有檔案,也可以在 IDE 裡開啟並編輯,但是之後的事情是個災難:整個專案的檔案許可權被更改、新新增的檔案在 WSL 下無法展示,甚至 git 命令也因為奇怪的許可權問題而不可用了
所以沒辦法了嗎? 辦法還是有的,不過路子比較野
還記得10年前(可能沒那麼遠 = =!)我們都在用 windows 系統,而伺服器都是 遠端 Linux 系統,那時沒有現在這麼流行的 MacOS ,我們是怎麼用 IDE 程式設計的呢,沒錯,FTP 或者 SFTP,那我們可不可以換個思路,通過 SFTP 或者 FTP 連線到我們本地的 WSL 呢,答案是肯定的,而且我認為目前只有這麼一種方法能夠很好的和 WSL 結合起來使用
2018年9月21日更新
在一次查詢 VSCode 選項過程中(是的,我打算放棄 webstorm),我發現了廣大勞動人民的偉大功績,沒錯,現在可以在 WSL 中使用圖形化介面,那麼我們也可以直接使用 Linux 下的 IDE 來直接開發,這無疑讓我們更加接近原生 Linux 開發,也預示著 windows 即將成為最受歡迎的 Linux 發行版(滑稽)
4.1 通過 Linux 下的 IDE 進行開發(推薦)
4.1.1 安裝 X-Server
簡單的說這個東西就是用於把遠端的 Linux 圖形展示在本地,當然這裡我們展示的是本地的 Linux
if [ $(ps -ax | grep dbus-daemon | wc -l) -eq 1 ]; then
dbus-launch fcitx > /dev/null 2>&1
fi複製程式碼
如果啟動 fcitx 時報如下錯誤
D-Bus library appears to be incorrectly set up; failed to read machine uuid: UUID file '/etc/machine-id' should contain a hex string of length 32, not length 0, with no other text
複製程式碼
則使用如下命令
sudo dbus-uuidgen --ensure
調整快捷鍵
接下來需要調整一下快捷鍵位設定,不能和 windows 的輸入法鍵位衝突
fcitx-configtool
執行之後會看到一個設定介面
選擇 Global Config
這裡我把第一行切換輸入法的設定改為了 左 Ctrl 鍵位,和 windows 的 Shift 鍵位有所區別
如果開啟設定介面沒有找到谷歌中文輸入法,可以用左下角+號新增進來
成功安裝後使用 VSCode 的介面
總結
至此,直接在 wsl 內使用 VSCode 開發就基本完成了,接下來一些配置項和其他平臺的並無區別,也可以直接用 VSCode 執行命令、打斷點等一系列複雜操作了,唯一的問題是在某些 DPI 比較高的電腦上,開啟 VSCode 會有一點模糊,這是由於縮放倍數導致的,而如果以正常 DPI 效果開啟,又太過於小了...這方面還需要繼續優化,但是在程式碼體驗上,無疑要更加接近原生的 Linux 開發,同時也保留了 windows 應用軟體的優勢
希望我的這篇分享,能讓在 windows 下備受煎熬與冷眼的程式設計師們,可以找到一點光明,也希望微軟在未來可以更好的發揮出 WSL 的優勢,有問題大家可以敲我,我也仍在繼續摸索中
2018年9月21日更新
不知不覺又過了一年,最近忙這忙那,部落格也停了好久,但是,奮戰在 windows 的工程師們顯然沒有放棄 WSL ,層出不窮的技術方案,讓開發趨於完美,大家都在為更好的在 windows 上開發而努力,而微軟也繼續更新優化著這一個業務,我相信,一個不斷追求進步,勇於改進的軟體是不會被時代淘汰的,他將在未來的某個時間節點,以一種厚積薄發的形式再次站在大家的面前(好了好了,新聞聯播稿都出來了)