百度親民前端構(gòu)建工具fis3

<h1>什么是fis3糕殉?</h1>

<p style='color:blue'>FIS3 是面向前端的工程構(gòu)建工具。解決前端工程中性能優(yōu)化殖告、資源加載(異步阿蝶、同步、按需黄绩、預(yù)加載羡洁、依賴管理、合并爽丹、內(nèi)嵌)筑煮、模塊化開(kāi)發(fā)、自動(dòng)化工具粤蝎、開(kāi)發(fā)規(guī)范真仲、代碼部署等問(wèn)題.</p>
<h1>安裝:</h1>
<code style='font-size=14px'>npm install -g fis3</code>
<p style='color:red'>當(dāng)出現(xiàn)以下圖形則表示安裝成功</p>
<pre>
$ fis3 -v

[INFO] Currently running fis3 (/Users/Your/Dev/fis3/dev/fis3)
v3.0.0
/\\\\\\\\ /\\\\\\ /\\\\\
/\/////////// /////\/// /\/////////\
/\\ /\\ //\\ ///
/\\\\\\ /\\ ////\
/\/////// /\\ ////\
/\\ /\\ ////\
/\\ /\\ /\\ //\
/\\ /\\\\\\ ///\\\\\/
/// /////////// ///////////
</pre>
<p style='margin:0'>安裝完畢,在介紹之前我來(lái)說(shuō)說(shuō)我為什么使用fis初澎。fis出的比較早秸应,是國(guó)內(nèi)百度出的,但前端工具這一塊很多都是國(guó)外流行傳近國(guó)內(nèi)的,所以知道fis的人還是比較少的灸眼。我自己英語(yǔ)不好,嫌查文檔不方便墓懂,就偷了個(gè)懶焰宣,選擇fis作為我的開(kāi)發(fā)工具(因?yàn)槲臋n都是中文的~~)。還好fis經(jīng)過(guò)慢慢的改進(jìn)捕仔,到了fis3已經(jīng)很強(qiáng)大了匕积。</p>
<p style='margin:0'>
fis有很多功能,但是早期對(duì)于我來(lái)說(shuō)fis的熱更新對(duì)我來(lái)說(shuō)幫助非常大榜跌,快速靈活的搭建本地服務(wù)闪唆,讓我的開(kāi)發(fā)效率大大提高。如果你是剛剛接觸前端這門(mén)職業(yè)并且沒(méi)有或者還沒(méi)有找到一個(gè)合適的開(kāi)發(fā)工具钓葫,不妨試試fis3悄蕾,或許這就是你想要的。</p>

<h1>先起個(gè)服務(wù)</h1>
<blockquote>在實(shí)際開(kāi)發(fā)項(xiàng)目的時(shí)候础浮,前端除了寫(xiě)靜態(tài)頁(yè)面帆调,還有和后臺(tái)的交互也是肯定少不了,所以這個(gè)時(shí)候我們就需要在本地起一個(gè)服務(wù)來(lái)保證數(shù)據(jù)的正確獲取和發(fā)送豆同。</blockquote>
fis起服務(wù)非常的簡(jiǎn)單和方便番刊,首先進(jìn)入項(xiàng)目頁(yè)面:


fis1.png

按住shift鍵同時(shí)右鍵點(diǎn)擊目錄空白處,選擇“在此處打開(kāi)命令窗口”:


fis2.PNG

此時(shí)就彈出在當(dāng)前目錄路徑下的命令窗口:
fis3.png

輸入<code style='font-size=14px'>fis3 release</code>回車

fis4.png

完成后再輸入<code style='font-size=14px'>fis3 server start</code>回車

fis5.png

如果服務(wù)啟動(dòng)成功會(huì)自動(dòng)打開(kāi)瀏覽器影锈,訪問(wèn) http://127.0.0.1:8080芹务,這就是我們發(fā)布在本地的項(xiàng)目;如果項(xiàng)目根目錄下有index.html鸭廷,會(huì)自動(dòng)打開(kāi)index頁(yè)面枣抱。
我們也可以手動(dòng)輸入http://127.0.0.1:8080(本地訪問(wèn))或者h(yuǎn)ttp://192.168.0.106:8080(外網(wǎng)訪問(wèn),就是命令窗口服務(wù)啟動(dòng)成功后下面的那個(gè)網(wǎng)址)靴姿;
<h2>熱更新</h2>
本地服務(wù)是起起來(lái)了沃但,但是我們開(kāi)發(fā)項(xiàng)目的時(shí)候每次改動(dòng)后想在瀏覽器看到效果,就要重復(fù)<code style='font-size=14px'>fis3 release</code>+回車佛吓,這顯然不是我們想要的宵晚。
所以我們的在release的時(shí)候給他加上參數(shù):
<code style='font-size=14px'>fis3 release -wL</code>
這樣fis就會(huì)對(duì)本地文件進(jìn)行監(jiān)聽(tīng),一旦本地文件有變化维雇,就會(huì)在瀏覽器實(shí)時(shí)的更新出來(lái)~(是不是很棒淤刃,效率可是大大的提高哦)
<h1>構(gòu)建</h1>
<blockquote>fis的本地服務(wù)啟動(dòng)了,其實(shí)就算入了門(mén)吱型,可以應(yīng)付日常的開(kāi)發(fā)了逸贾,但是對(duì)于整個(gè)項(xiàng)目來(lái)說(shuō),fis還有更強(qiáng)大的功能。</blockquote>
fis之所以叫構(gòu)建工具是它可以像搭積木一樣把零散的資源與代碼構(gòu)建成一個(gè)完整的項(xiàng)目的能力铝侵。
而這些能力是通過(guò)fis-conf.js來(lái)實(shí)現(xiàn)的灼伤。在fis-conf.js中定義處理項(xiàng)目資源的規(guī)則。FIS3 定義了一種類似 CSS 的配置方式固化了構(gòu)建流程咪鲜,讓工程構(gòu)建變得簡(jiǎn)單狐赡。
like this:
<code style='font-size=14px'>
fis.match('.js', {
useHash: false
});
fis.match('
.css', {
useHash: false
});
fis.match('.png', {
useHash: false
});
</code>
<h3>文件指紋</h3>
文件指紋,唯一標(biāo)識(shí)一個(gè)文件疟丙。在開(kāi)啟強(qiáng)緩存的情況下颖侄,如果文件的 URL 不發(fā)生變化,無(wú)法刷新瀏覽器緩存享郊。一般都需要通過(guò)一些手段來(lái)強(qiáng)刷緩存览祖,一種方式是添加時(shí)間戳,每次上線更新文件炊琉,給這個(gè)資源文件的 URL 添加上時(shí)間戳
<pre>
</pre>
而 FIS3 選擇的是添加 MD5 戳展蒂,直接修改文件的 URL,而不是在其后添加 query苔咪。
對(duì) js玄货、css、png 圖片引用 URL 添加 md5 戳悼泌,配置如下松捉;
<pre>//清除其他配置,只剩下如下配置
fis.match('
.{js,css,png}', {
useHash: true
});</pre>

文件變化:


Paste_Image.png

<h3>資源合并</h3>
為了減少資源網(wǎng)絡(luò)傳輸?shù)拇笮」堇铮ㄟ^(guò)壓縮器對(duì) js隘世、css、圖片進(jìn)行壓縮是一直以來(lái)前端工程優(yōu)化的選擇鸠踪。在 FIS3 中這個(gè)過(guò)程非常簡(jiǎn)單丙者,通過(guò)給文件配置壓縮器即可。
<pre>// 清除其他配置营密,只保留如下配置
fis.match('*.js', {
// fis-optimizer-uglify-js 插件進(jìn)行壓縮械媒,已內(nèi)置
optimizer: fis.plugin('uglify-js')
});

fis.match('*.css', {
// fis-optimizer-clean-css 插件進(jìn)行壓縮,已內(nèi)置
optimizer: fis.plugin('clean-css')
});

fis.match('*.png', {
// fis-optimizer-png-compressor 插件進(jìn)行壓縮评汰,已內(nèi)置
optimizer: fis.plugin('png-compressor')
});</pre>

<h3>CssSprite圖片合并</h3>
壓縮了靜態(tài)資源纷捞,我們還可以對(duì)圖片進(jìn)行合并,來(lái)減少請(qǐng)求數(shù)量被去。
FIS3 提供了比較簡(jiǎn)易主儡、使用方便的圖片合并工具。通過(guò)配置即可調(diào)用此工具并對(duì)資源進(jìn)行合并惨缆。
FIS3 構(gòu)建會(huì)對(duì) CSS 中糜值,路徑帶 ?__sprite 的圖片進(jìn)行合并丰捷。為了節(jié)省編譯的時(shí)間,分配到 useSprite: true 的 CSS 文件才會(huì)被處理寂汇。
<pre>li.list-1::before {
background-image: url('./img/list-1.png?__sprite');
}

li.list-2::before {
background-image: url('./img/list-2.png?__sprite');
}</pre>
<pre>// 啟用 fis-spriter-csssprites 插件
fis.match('::package', {
spriter: fis.plugin('csssprites')
})

// 對(duì) CSS 進(jìn)行圖片合并
fis.match('*.css', {
// 給匹配到的文件分配屬性 useSprite
useSprite: true
});</pre>

<h1>結(jié)束語(yǔ)</h1>
對(duì)于fis3我就介紹到這里了病往,如果想了解更多fis3其他的功能,請(qǐng)看:
<a >官方文檔</a>
最后補(bǔ)充一句骄瓣,fis3開(kāi)發(fā)常規(guī)項(xiàng)目是完全夠用了荣恐,對(duì)新手友好,文檔也詳細(xì)累贤。但是如果想使用vue,react這種要使用專門(mén)的文件做開(kāi)發(fā)的框架少漆,webpack肯定是首選臼膏,但是webpack的學(xué)習(xí)成本太大對(duì)新手不友好,所以這里推薦UC團(tuán)隊(duì)基于fis做的二次開(kāi)發(fā)的構(gòu)建工具<a >Scrat</a>可以作為過(guò)渡工具示损。

<h1>最最后求波關(guān)注么么噠ヾ(o???)?ヾ</h1>

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末渗磅,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子检访,更是在濱河造成了極大的恐慌始鱼,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,542評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件脆贵,死亡現(xiàn)場(chǎng)離奇詭異医清,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)卖氨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門(mén)会烙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人筒捺,你說(shuō)我怎么就攤上這事柏腻。” “怎么了系吭?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,912評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵五嫂,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我肯尺,道長(zhǎng)沃缘,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,449評(píng)論 1 293
  • 正文 為了忘掉前任则吟,我火速辦了婚禮孩灯,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘逾滥。我一直安慰自己峰档,他們只是感情好败匹,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,500評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著讥巡,像睡著了一般掀亩。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上欢顷,一...
    開(kāi)封第一講書(shū)人閱讀 51,370評(píng)論 1 302
  • 那天槽棍,我揣著相機(jī)與錄音,去河邊找鬼抬驴。 笑死炼七,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的布持。 我是一名探鬼主播豌拙,決...
    沈念sama閱讀 40,193評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼题暖!你這毒婦竟也來(lái)了按傅?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,074評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤胧卤,失蹤者是張志新(化名)和其女友劉穎唯绍,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體枝誊,經(jīng)...
    沈念sama閱讀 45,505評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡况芒,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,722評(píng)論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了叶撒。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片牛柒。...
    茶點(diǎn)故事閱讀 39,841評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖痊乾,靈堂內(nèi)的尸體忽然破棺而出皮壁,到底是詐尸還是另有隱情,我是刑警寧澤哪审,帶...
    沈念sama閱讀 35,569評(píng)論 5 345
  • 正文 年R本政府宣布蛾魄,位于F島的核電站,受9級(jí)特大地震影響湿滓,放射性物質(zhì)發(fā)生泄漏滴须。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,168評(píng)論 3 328
  • 文/蒙蒙 一叽奥、第九天 我趴在偏房一處隱蔽的房頂上張望扔水。 院中可真熱鬧,春花似錦朝氓、人聲如沸魔市。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,783評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)待德。三九已至君丁,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間将宪,已是汗流浹背绘闷。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,918評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留较坛,地道東北人印蔗。 一個(gè)月前我還...
    沈念sama閱讀 47,962評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像丑勤,于是被迫代替她去往敵國(guó)和親华嘹。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,781評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,116評(píng)論 25 707
  • 前端集成解決方案要求: 模塊化開(kāi)發(fā)确封。最好能像寫(xiě)nodejs一樣寫(xiě)js,很舒服再菊。css最好也能來(lái)個(gè)模塊化管理爪喘! 性能...
    Www劉閱讀 3,013評(píng)論 1 20
  • 性能優(yōu)化方向分類 請(qǐng)求數(shù)量: 合并腳本和樣式表, CSS Sprites纠拔, 拆分初始化負(fù)載秉剑, 劃分主域(使用“查找...
    Www劉閱讀 1,768評(píng)論 3 8
  • 有種說(shuō)法侦鹏,說(shuō)現(xiàn)代人普遍有三種病——拖延癥、強(qiáng)迫癥和討好癥臀叙。甚至略水,還有人總結(jié)出普遍存在的10種病。很多人都表示贊同劝萤。...
    羽宙兒閱讀 430評(píng)論 0 0
  • 忽然有一天渊涝,我也感覺(jué)到了職場(chǎng)的險(xiǎn)惡,開(kāi)始擔(dān)心床嫌,懷疑自己跨释,不知道要怎么辦了?
    阿么米閱讀 161評(píng)論 0 0