FIS3 是面向前端的工程構建工具。解決前端工程中性能優化、資源加載(異步、同步、按需、預加載、依賴管理、合併、內嵌)、模塊化開發、自動化工具、開發規範、代碼部署等問題。php
npm install -g fis3
fis3 -v
官網提供了一個簡單例子,例子結構以下(很是簡單的由html、css、js以及幾張圖片構成)css
fis-conf.js是FIS3 配置文件,它所在的目錄爲項目根目錄html
構建發佈(目前fis-conf.js爲空)前端
fis3 release -d <path>
如發佈到根目錄的output目錄下node
fis3 release -d ./output
對比 構建前 和 構建後 的html和css文件,會發現資源由原來的 相對定位 變成了 絕對定位,這就是FIS3的資源定位。git
一、fis.match(selector, props)github
fis.match('*.{png,js,css}', { release: '/static/$0' });
二、fis.media() 配置狀態npm
fis.media() 能夠使配置文件變爲多份(多個狀態,一個狀態一份配置)。例如:瀏覽器
fis.media('rd').match('*', { deploy: fis.plugin('http-push', { receiver: 'http://remote-rd-host/receiver.php' }) }); fis.media('qa').match('*', { deploy: fis.plugin('http-push', { receiver: 'http://remote-qa-host/receiver.php' }) });
fis3 release rd
push 到 RD 的遠端機器上fis3 release qa
push 到 QA 的遠端機器上三、文件指紋性能優化
給文件添加 MD5 戳
fis.match('*.{js,css,png}', { useHash: true });
四、壓縮資源
fis.match('*.js', { // fis-optimizer-uglify-js 插件進行壓縮,已內置 optimizer: fis.plugin('uglify-js') }); fis.match('*.css', { // fis-optimizer-clean-css 插件進行壓縮,已內置 optimizer: fis.plugin('clean-css') }); fis.match('*.png', { // fis-optimizer-png-compressor 插件進行壓縮,已內置 optimizer: fis.plugin('png-compressor') });
五、CssSprite圖片合併
// 啓用 fis-spriter-csssprites 插件 fis.match('::package', { spriter: fis.plugin('csssprites') }) // 對 CSS 進行圖片合併 fis.match('*.css', { // 給匹配到的文件分配屬性 `useSprite` useSprite: true });
這個不支持個人node版本(v6.11.0),可是官網寫的能夠支持6.x,因此不知道是什麼問題。好久之前用過這個,沒有問題,感受如今缺乏維護了。
4、啓動
FIS3 內置一個簡易 Web Server,能夠方便調試構建結果。
一、發佈到內置 Web Server的根目錄下,當啓動服務時訪問此目錄下的資源
fis3 release
注:加 -w 能夠監聽文件
二、啓動本地 Web Server,當此 Server 啓動後,會自動瀏覽器打開 http://127.0.0.1:8080
fis3 server start
FIS3官網 http://fis.baidu.com/fis3/index.html
END------------------------------------------------------------------