entr:文件更改時(shí)重新運(yùn)行構(gòu)建

這是一篇簡(jiǎn)短的文章。我是最近才發(fā)現(xiàn) entr 的,我很驚奇從來(lái)沒(méi)有人告訴過(guò)我?!因此,如果你和我一樣,那么我告訴你它是什么。

創(chuàng)新互聯(lián)建站是專業(yè)的富平網(wǎng)站建設(shè)公司,富平接單;提供成都做網(wǎng)站、網(wǎng)站設(shè)計(jì),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行富平網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!

entr 的網(wǎng)站上對(duì)它已經(jīng)有很好的解釋,也有很多示例。

總結(jié)在其頭部:entr 是一個(gè)命令行工具,當(dāng)每次更改一組指定文件中的任何一個(gè)時(shí),都能運(yùn)行一個(gè)任意命令。你在標(biāo)準(zhǔn)輸入給它傳遞要監(jiān)控的文件列表,如下所示:

或者

或者任何你希望的。

就像世界上的每個(gè)程序員一樣,我發(fā)現(xiàn)每次更改代碼時(shí)都必須手動(dòng)重新運(yùn)行構(gòu)建/測(cè)試非常煩人。

許多工具(例如 hugo 和 flask)都有一個(gè)內(nèi)置的系統(tǒng),可以在更改文件時(shí)自動(dòng)重建,這很棒!

但是通常我會(huì)自己編寫一些自定義的構(gòu)建過(guò)程(例如 bash build.sh),而 entr 讓我有了一種神奇的構(gòu)建經(jīng)驗(yàn),我只用一行 bash 就能得到即時(shí)反饋,知道我的改變是否修復(fù)了那個(gè)奇怪的 bug。萬(wàn)歲!

但是如果你正在運(yùn)行服務(wù)器,并且每次都需要重新啟動(dòng)服務(wù)器怎么辦?如果你傳遞 -r,那么 entr 會(huì)幫你的

另一個(gè)簡(jiǎn)潔的標(biāo)志是 -c,它讓你可以在重新運(yùn)行命令之前清除屏幕,以免被前面構(gòu)建的輸出分散注意力。

通常,我要跟 蹤的文件集和我在 git 中的文件列表大致相同,因此將 git ls-files 傳遞給 entr 是很自然的事情。

我現(xiàn)在有一個(gè)項(xiàng)目,有時(shí)候我剛創(chuàng)建的文件還沒(méi)有在 git 里。那么如果你想包含未被跟 蹤的文件怎么辦呢?這些 git 命令行參數(shù)就可以做到(我是從一個(gè)讀者的郵件中得到的,謝謝你?。?/p>

有人給我發(fā)了郵件,說(shuō)他們做了一個(gè) git-entr 命令,可以執(zhí)行:

我覺(jué)得這真是一個(gè)很棒的主意。

git ls-files 的另一個(gè)問(wèn)題是有時(shí)候我添加一個(gè)新文件,當(dāng)然它還沒(méi)有在 git 中。entr 為此提供了一個(gè)很好的功能。如果你傳遞 -d,那么如果你在 entr 跟 蹤的任何目錄中添加新文件,它就會(huì)退出。

我將它與一個(gè) while 循環(huán)配合使用,它將重啟 entr 來(lái)包括新文件,如下所示:

在 Linux 中,entr 使用 inotify(用于跟 蹤文件更改這樣的文件系統(tǒng)事件的系統(tǒng))工作。如果用 strace 跟 蹤它,那么你會(huì)看到每個(gè)監(jiān)控文件的 inotify_add_watch 系統(tǒng)調(diào)用,如下所示:

我希望這可以幫助一些人了解 entr!

【編輯推薦】

程序員喜大普奔 Linux基金會(huì)確認(rèn)開(kāi)源技術(shù)不受美國(guó)出口管制 Linux停用“黑名單”,因?yàn)檫@是敏感詞,涉嫌種族歧視 Linux 上無(wú)痛文件提取 Linux下列出目錄內(nèi)容命令 安裝Linux Mint 20后需要做的13件事
【責(zé)任編輯:龐桂玉 TEL:(010)68476606】

標(biāo)題名稱:entr:文件更改時(shí)重新運(yùn)行構(gòu)建
網(wǎng)站地址:http://www.muchs.cn/article22/sogsjc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁(yè)設(shè)計(jì)公司、網(wǎng)站收錄、靜態(tài)網(wǎng)站網(wǎng)站內(nèi)鏈、網(wǎng)站維護(hù)、標(biāo)簽優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化