如何自動化你的開發(fā)環(huán)境
如果你是一個程序員,無論前端還是后端,無論業(yè)余還是專業(yè),你可能都會遇到這樣一個問題:你需要一邊寫代碼,一邊運行程序,方便查看代碼產(chǎn)生的效果。
舉個例子吧,當你寫了一部分 Django views,你會開啟一個終端運行 Django
- cd myapp/rear_end/
- source env/bin/activate
- python manage.py runserver
然后你有寫了幾個前端頁面,你要啟動 npm
- cd myapp/front_end/
- npm run dev
現(xiàn)在突然報了個錯,提升你 xxx 包沒有安裝,于是你又開啟了一個終端,運行了 pip
- source env/bin/activate
- pip install xxx
也許你還需要在開啟一個終端,來管理 npm 的包。
然后你就在這些個終端里面切換來切換去,不知道怎么搞得,電腦卡了下,你一怒之下用快捷鍵退出了好幾個應用程序,其中就包括你開啟的幾個終端。
然后你的程序崩潰了。
你也崩潰了,編程太艱難了,現(xiàn)在你不得不手動一個一個啟動這些終端,然后在敲入相應的指令。即使你的電腦不卡,也許會關機,再開機,仍然需要做這些步驟。
現(xiàn)在是時候?qū)ふ腋玫霓k法了。
也許你知道 tmux (tmux教程[1]) 可以對一個終端進行分屏,每個屏里面是一個獨立的 terminal session,可以分別執(zhí)行不同的命令,讓我們在同一個窗口看到不同任務的執(zhí)行情況,比如像這樣:
這樣雖然解決了不同終端間來回切換的問題,但還有一個問題沒解決,就是如果不小心關閉了這個終端,或者電腦崩潰了,如何快速恢復運行好的狀態(tài)?
這就需要 tmuxinator 了,先看下效果圖:
tmuxinator 是一個處理 tmux 配置的完美工具,自動化開發(fā)環(huán)境從未如此簡單?,F(xiàn)在讓我們看下如何使用。
1、先安裝 tmuxinator。
當然了,安裝前確保你已經(jīng)安裝了 tmux,可以看這個tmux教程[2]
- gem install tmuxinator
注:
gem 是 Ruby 的一個包管理器,安裝完 Ruby,你就有了 gem 工具,正如安裝完 Python,你就有了 pip 工具。
2、在項目目錄生成一個配置文件
假如項目叫 dream,然后在終端執(zhí)行
- tmuxinator new dream
會生成文件 ~/.config/tmuxinator/dream.yml
3、修改這個配置文件,加入自己執(zhí)行的命令,如下所示:
- name: dream
- root: ~/dev/mtg-dreamland
- windows:
- - main:
- layout: even-horizontal
- panes:
- - client:
- - cd client
- - git status
- - ls
- - server:
- - cd server
- - git status
- - ls
- - build:
- layout: even-horizontal
- panes:
- - client:
- - cd client
- - npm start
- - server:
- - cd server
- - nodemon server.js
這個配置文件定義了 2 個窗口:“main”和“build”。在每一個中,有 2 個窗格“客戶端”和“服務器”。然后只需定義我想在啟動時在每個窗格中運行的命令,我們就完成了!
然后執(zhí)行 tmuxinator start dream,就可以看到所有的命令都會按照你的編排進行執(zhí)行,實現(xiàn)了開發(fā)環(huán)境的自動化,如下:
最后
這只是 tmuxinator 的簡單應用,如果要想了解它更多的能力,可以去官方 GitHub[3] 看下。
參考資料
[1]tmux教程: https://www.ruanyifeng.com/blog/2019/10/tmux.html
[2]tmux教程: https://www.ruanyifeng.com/blog/2019/10/tmux.html
[3]官方 GitHub: https://github.com/tmuxinator/tmuxinator#windows
本文轉(zhuǎn)載自微信公眾號「Python七號」,可以通過以下二維碼關注。轉(zhuǎn)載本文請聯(lián)系Python七號公眾號。