這是一篇簡短的文章。我是最近才發現 entr 的,我很驚奇從來沒有人告訴過我?!因此,如果你和我一樣,那么我告訴你它是什么。
創新互聯建站是專業的富平網站建設公司,富平接單;提供成都做網站、網站設計,網頁設計,網站設計,建網站,PHP網站建設等專業做網站服務;采用PHP框架,可快速的進行富平網站開發網頁制作和功能擴展;專業做搜索引擎喜愛的網站,專業的做網站團隊,希望更多企業前來合作!entr 的網站上對它已經有很好的解釋,也有很多示例。
總結在其頭部:entr 是一個命令行工具,當每次更改一組指定文件中的任何一個時,都能運行一個任意命令。你在標準輸入給它傳遞要監控的文件列表,如下所示:
或者
或者任何你希望的。
就像世界上的每個程序員一樣,我發現每次更改代碼時都必須手動重新運行構建/測試非常煩人。
許多工具(例如 hugo 和 flask)都有一個內置的系統,可以在更改文件時自動重建,這很棒!
但是通常我會自己編寫一些自定義的構建過程(例如 bash build.sh),而 entr 讓我有了一種神奇的構建經驗,我只用一行 bash 就能得到即時反饋,知道我的改變是否修復了那個奇怪的 bug。萬歲!
但是如果你正在運行服務器,并且每次都需要重新啟動服務器怎么辦?如果你傳遞 -r,那么 entr 會幫你的
另一個簡潔的標志是 -c,它讓你可以在重新運行命令之前清除屏幕,以免被前面構建的輸出分散注意力。
通常,我要跟 蹤的文件集和我在 git 中的文件列表大致相同,因此將 git ls-files 傳遞給 entr 是很自然的事情。
我現在有一個項目,有時候我剛創建的文件還沒有在 git 里。那么如果你想包含未被跟 蹤的文件怎么辦呢?這些 git 命令行參數就可以做到(我是從一個讀者的郵件中得到的,謝謝你!):
有人給我發了郵件,說他們做了一個 git-entr 命令,可以執行:
我覺得這真是一個很棒的主意。
git ls-files 的另一個問題是有時候我添加一個新文件,當然它還沒有在 git 中。entr 為此提供了一個很好的功能。如果你傳遞 -d,那么如果你在 entr 跟 蹤的任何目錄中添加新文件,它就會退出。
我將它與一個 while 循環配合使用,它將重啟 entr 來包括新文件,如下所示:
在 Linux 中,entr 使用 inotify(用于跟 蹤文件更改這樣的文件系統事件的系統)工作。如果用 strace 跟 蹤它,那么你會看到每個監控文件的 inotify_add_watch 系統調用,如下所示:
我希望這可以幫助一些人了解 entr!
【編輯推薦】
標題名稱:entr:文件更改時重新運行構建
網站地址:http://vcdvsql.cn/article22/sogsjc.html
成都網站建設公司_創新互聯,為您提供網頁設計公司、網站收錄、靜態網站、網站內鏈、網站維護、標簽優化
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯