前端工程構建工具FIS3

FIS3 是面向前端的工程構建工具。解決前端工程中性能優化、資源加載(異步、同步、按需、預加載、依賴管理、合併、內嵌)、模塊化開發、自動化工具、開發規範、代碼部署等問題。php

1、安裝

  1. 全局安裝fis3
    npm install -g fis3 
  2. 查看是否安裝成功
    fis3 -v

     

 2、構建

官網提供了一個簡單例子,例子結構以下(很是簡單的由html、css、js以及幾張圖片構成)css

fis-conf.js是FIS3 配置文件,它所在的目錄爲項目根目錄html

  1. 構建發佈(目前fis-conf.js爲空)前端

    • 構建發佈到指定路徑
    • fis3 release -d <path>

      如發佈到根目錄的output目錄下node

      fis3 release -d ./output

    •  對比 構建前 和 構建後 的html和css文件,會發現資源由原來的 相對定位 變成了 絕對定位,這就是FIS3的資源定位。git

      • 好處有:① 資源發佈到任何靜態資源服務器任何路徑上,線上運行時都能找到它們; ② 代碼可移植性強,移植不用擔憂線上部署不一致的問題

   

3、配置文件

一、fis.match(selector, props)github

    • selector:要匹配的文件路徑
    • props:編譯規則屬性
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------------------------------------------------------------------

相關文章
相關標籤/搜索