FIS簡(jiǎn)介
FIS 是面向前端的工程構(gòu)建工具,解決前端工程中性能優(yōu)化、資源加載(異步、同步、按需、預(yù)加載、依賴管理、合并、內(nèi)嵌)、模塊化開(kāi)發(fā)、自動(dòng)化工具、開(kāi)發(fā)規(guī)范、代碼部署等問(wèn)題
FIS是基于NodeJS技術(shù)的基礎(chǔ)上提供的前端工程構(gòu)建工具,F(xiàn)IS是基于文件對(duì)象進(jìn)行構(gòu)建的,每個(gè)進(jìn)入FIS的文件都會(huì)實(shí)例化一個(gè)File對(duì)象,整個(gè)構(gòu)建過(guò)都對(duì)這個(gè)對(duì)象進(jìn)行操作完成構(gòu)建任務(wù)。
FIS 與 FIS-PLUS的淵源
FIS vs FIS+
FIS和FIS+的概念混淆在產(chǎn)生之初就產(chǎn)生了,剛來(lái)的新同學(xué)在第一次使用FIS機(jī)會(huì)問(wèn)“FIS和FIS+”有什么區(qū)別,鑒于此,我查了些資料,簡(jiǎn)單描述下歷史和區(qū)別。
- FIS產(chǎn)生之初定位就是做一個(gè)內(nèi)核,提供一套編譯體系、靜態(tài)資源管理和本地模擬調(diào)試,其編譯體系可以通過(guò)配置文件和插件的方式任意擴(kuò)展
- FIS+通過(guò)擴(kuò)展實(shí)現(xiàn)了一套適合于后端的PHP+Smarty3的編譯體系,在后端實(shí)現(xiàn)了靜態(tài)資源管理,提出了諸如quickling、i18n、fis-plus之類(lèi)的解決方案。
目錄規(guī)范
整個(gè)編譯體系分為目錄規(guī)范和以文件類(lèi)型為基礎(chǔ)的插件體系。
- FIS是沒(méi)有目錄規(guī)范的,源碼隨便放
- FIS+有一套成型的目錄規(guī)范,規(guī)定了js如何放、css如何放、模塊如何劃分,如何引入js等等。
插件
為了滿足后端php+smarty3以及靜態(tài)資源管理,F(xiàn)IS提供了一些插件,比如extlang、require-async用來(lái)分析script標(biāo)簽包裹的js,smarty-xss用來(lái)自動(dòng)XSS轉(zhuǎn)義等等。
FIS+脫胎FIS。
框架
- 靜態(tài)資源映射表:記錄文件依賴、打包、URL等信息的表結(jié)構(gòu),在FIS2中統(tǒng)稱map.json。在FIS3中默認(rèn)不產(chǎn)出map.json,F(xiàn)IS3中為了方便各種語(yǔ)言讀取map.json,對(duì)產(chǎn)出的map.json做了優(yōu)化
本地調(diào)試
- FIS提供了一套本地調(diào)試服務(wù)器
- FIS+ 額外提供了本地?cái)?shù)據(jù)模擬、路由轉(zhuǎn)發(fā)。
綜述
FIS+ 之于FIS,是一個(gè)針對(duì)業(yè)務(wù)場(chǎng)景在編譯工具、架構(gòu)層面進(jìn)行擴(kuò)建,適用于后端php/smarty的架構(gòu)體系。
Smarty模板
Smarty模板也是php寫(xiě)的,優(yōu)點(diǎn)是插件較多,但是真正和后端分離是不需要有后端支持就能用插件的方式解決靜態(tài)資源管理。