FIS3 快要發布了

jopen 9年前發布 | 11K 次閱讀 FIS3

原文  http://fex.baidu.com/blog/2015/06/fis3-pre/

FIS3 快要發布了

就在過去的若干月里面,FIS 團隊和 @fouber 一起就 FIS 發布以來一年多的使用情況做了一些總結,并且對其不完善地方做了抽象,終于確定了 FIS 的下一代 FIS3。如今 FIS3 在 FIS 團隊的努力下快要發布了;

先來個 里程碑 時間吧

  • 6月14日 FIS3 第一個項目上線
  • 6月30日 FIS3 GitHub 倉庫正式開放,正式發布

FIS3 快要來了,那么 FIS3 到底有哪些新奇的地方;

之所以不是 FIS2 而是 FIS3 是由于已經開源的 FIS 前還有一個用 PHP 實現的 FIS, FIS 開源以來都被稱為 FIS2.0。

2013 年上 FIS@berg @walter @fouber 帶領下的 FIS 團隊的努力下誕生,并且解決了諸多前端工程問題以及給前端工程化一種新的思路。包括但不限于在模塊化開發、自動化工具、資源加載、性能優化等等方面的突破。

FIS 通過對多年的前端項目的支持以及總結,發現前端語言不可或缺但是確實缺少的 三種語言能力 ,資源內嵌、定位資源、依賴聲明。有了這 三種語言能力 就可以漂亮的解決各種前端工程需求下的性能優化、模塊化開發等等問題。

FIS 提供工具增加了這 三種語言能力 ,并且給了一種資源加載管理的思路,基于靜態資源表的靜態資源管理方法,合理的解決了資源加載中的按需、同步/異步、依賴管理、緩存、合并、內嵌等工程問題。

FIS3 在 FIS 的基礎上提升了易用性以及可擴展能力。用一種更簡單的配置方法、更全面的插件擴展支持來為打造前端工程方案提供助力;

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

易于理解的配置

FIS3 提出了這樣一種配置方式,它就像是 CSS 一樣后面書寫的規則會覆蓋前面前面書寫的規則,像 CSS 有一些固定的規則供用戶設置;文件分配到的屬性,將會在編譯階段決定此文件將如何處理。

當我們要完成這樣一些事情

除了某些 js 文件 exclude.js 以外,其他的 js 文件都進行壓縮。

// vi fis-conf.js
fis.match('*.js', {
  optimizer: fis.plugin('uglify-js')
});

fis.match('exclude.js', {
  optimizer: null
});

在開發階段 js 不做壓縮,發布上線時 js 需要壓縮。
// vi fis-conf.js
fis.match('*.js', {
  optimizer: fis.plugin('uglify-js')
});
fis.media('dev').match('*.js', {
  optimizer: null
});

fis3 release 壓縮

fis3 release dev 不壓縮

fis.match(selector, props [, important]) 給文件分配屬性

FIS3 的 核心配置思想 是通過 給文件分配屬性 來控制工具對文件的處理,比如壓縮、異構語言的解析、資源依賴的收集、代碼檢查等;

一切流程都可擴展

FIS3 重新梳理了流程,文件在 FIS3 中編譯都由用戶指定的插件完成,包括合并、壓縮優化以及對異構語言的解析等。這一切都由你自己掌控。

fis.match('*.less', {
  parser: fis.plugin('less')
});
fis.match('*.{css,less}', {
  optimizer: fis.plugin('clean-css')
});

  • fis.plugin(name [, props]) 插件調用接口

FIS3 支持本地 NPM 包的加載,這將意味著你不再需要 npm install -g 安裝一個插件到全局包目錄,而可以加載本地插件了;這樣方便你 插件開發調試 。但為了便于維護,FIS3 建議你最終發布到 NPM 上的插件依然沿用全局安裝。

FIS3 對整個編譯流程提供諸多事件,方便你做特定化需求;并且推出新的插件類型 hookhook 插件會在編譯之前做加載,可在其內部綁定一些事件來完成特定的需求,比如相對路徑的支持。

其他特性

  • 可擴展三種語言能力語法
  • 方便易用的腳手架
  • 支持 AMD、commonJS、 Rosetta (web-components) 模塊化方案 (插件提供)
  • 模塊化方案可自由定制
  • 若干功能改進
    • watch 功能開啟時,修改項目配置文件 fis-conf.js 即時生效,不再需要重啟

$

FIS3 主要是用戶易用性和擴展能力的提升,定位是方便那些做前端工程方案的用戶能快捷的完成方案定制,我們不期待所有的人都能 拿來即用 ,而我們期待的是 FIS3 真正能使你從 折騰工具 中解放出來,通過幾行配置、依靠 FIS 社區能快速解決你遇到的工程問題。

擴展閱讀

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!