<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          如何自動(dòng)化你的開(kāi)發(fā)環(huán)境

          共 1976字,需瀏覽 4分鐘

           ·

          2021-10-18 10:15

          如果你是一個(gè)程序員,無(wú)論前端還是后端,無(wú)論業(yè)余還是專(zhuān)業(yè),你可能都會(huì)遇到這樣一個(gè)問(wèn)題:你需要一邊寫(xiě)代碼,一邊運(yùn)行程序,方便查看代碼產(chǎn)生的效果。

          舉個(gè)例子吧,當(dāng)你寫(xiě)了一部分 Django views,你會(huì)開(kāi)啟一個(gè)終端運(yùn)行 Django

          cd?myapp/rear_end/
          source?env/bin/activate
          python?manage.py?runserver

          然后你有寫(xiě)了幾個(gè)前端頁(yè)面,你要啟動(dòng) npm

          cd?myapp/front_end/
          npm?run?dev

          現(xiàn)在突然報(bào)了個(gè)錯(cuò),提升你 xxx 包沒(méi)有安裝,于是你又開(kāi)啟了一個(gè)終端,運(yùn)行了 pip

          source?env/bin/activate
          pip?install?xxx

          也許你還需要在開(kāi)啟一個(gè)終端,來(lái)管理 npm 的包。

          然后你就在這些個(gè)終端里面切換來(lái)切換去,不知道怎么搞得,電腦卡了下,你一怒之下用快捷鍵退出了好幾個(gè)應(yīng)用程序,其中就包括你開(kāi)啟的幾個(gè)終端。

          然后你的程序崩潰了。

          你也崩潰了,編程太艱難了,現(xiàn)在你不得不手動(dòng)一個(gè)一個(gè)啟動(dòng)這些終端,然后在敲入相應(yīng)的指令。即使你的電腦不卡,也許會(huì)關(guān)機(jī),再開(kāi)機(jī),仍然需要做這些步驟。

          現(xiàn)在是時(shí)候?qū)ふ腋玫霓k法了。

          也許你知道 tmux (tmux教程[1]) 可以對(duì)一個(gè)終端進(jìn)行分屏,每個(gè)屏里面是一個(gè)獨(dú)立的 terminal session,可以分別執(zhí)行不同的命令,讓我們?cè)谕粋€(gè)窗口看到不同任務(wù)的執(zhí)行情況,比如像這樣:

          這樣雖然解決了不同終端間來(lái)回切換的問(wèn)題,但還有一個(gè)問(wèn)題沒(méi)解決,就是如果不小心關(guān)閉了這個(gè)終端,或者電腦崩潰了,如何快速恢復(fù)運(yùn)行好的狀態(tài)?

          這就需要 tmuxinator 了,先看下效果圖:

          tmuxinator 是一個(gè)處理 tmux 配置的完美工具,自動(dòng)化開(kāi)發(fā)環(huán)境從未如此簡(jiǎn)單。現(xiàn)在讓我們看下如何使用。

          1、先安裝 tmuxinator。

          當(dāng)然了,安裝前確保你已經(jīng)安裝了 tmux,可以看這個(gè)tmux教程[2]

          gem?install?tmuxinator

          注:

          • gem 是 Ruby 的一個(gè)包管理器,安裝完 Ruby,你就有了 gem 工具,正如安裝完 Python,你就有了 pip 工具。

          2、在項(xiàng)目目錄生成一個(gè)配置文件

          假如項(xiàng)目叫 dream,然后在終端執(zhí)行

          tmuxinator?new?dream?

          會(huì)生成文件 ~/.config/tmuxinator/dream.yml

          3、修改這個(gè)配置文件,加入自己執(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

          這個(gè)配置文件定義了 2 個(gè)窗口:“main”和“build”。在每一個(gè)中,有 2 個(gè)窗格“客戶(hù)端”和“服務(wù)器”。然后只需定義我想在啟動(dòng)時(shí)在每個(gè)窗格中運(yùn)行的命令,我們就完成了!

          然后執(zhí)行 tmuxinator start dream,就可以看到所有的命令都會(huì)按照你的編排進(jìn)行執(zhí)行,實(shí)現(xiàn)了開(kāi)發(fā)環(huán)境的自動(dòng)化,如下:

          最后

          這只是 tmuxinator 的簡(jiǎn)單應(yīng)用,如果要想了解它更多的能力,可以去官方 GitHub[3] 看下。

          如果有幫助,求關(guān)注下。

          參考資料

          [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


          瀏覽 37
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美三级午夜理伦三级18禁 | 色天天干 | 精品无码av一区二区三区不卡 | 性生活片日逼片 | 久久亚洲国产成人精品性色 |