前端構建工具-fis3使用入門
FIS3 是面向前端的工程構建工具。解決前端工程中效能優化、資源載入(非同步、同步、按需、預載入、依賴管理、合併、內嵌)、模組化開發、自動化工具、開發規範、程式碼部署等問題。
官網地址是: https://fex-team.github.io/fis3/index.html
我們要做前後端分離,將靜態資源部署到CDN。調研了幾個前端構建工具之後,選擇了 fis3, 原因是能滿足我們的需求、並且輕量級、配置簡單、使用方便、安裝也不容易報錯。
下載安裝
- 安裝NodeJS
下載地址: http://nodejs.cn/download/
推薦下載最新版本的NodeJS,如 v8.1.3+ 等。
安裝到預設目錄,完成後檢視版本號:node -v
- npm安裝fis3
在 cmd 中執行:npm install -g fis3
安裝fis3後,在 cmd 中執行fis3 -v
判斷是否安裝成功
相關的 shell 命令如下:
node -v
npm install -g fis3
fis3 -v
簡單使用
說明: fis3等前端構建工具,依賴的是相對路徑, 如
./xxx/xxx.js
等; 識別:<img src="">
、<link href="">
、<script src="">
url(``)
等資源配置。如果你的專案不符合此要求, 需要進行一定的修改。
首先,在前端程式碼的根目錄中,建立檔案 fis-conf.js
。 fis3 會查詢此檔案作為配置。
修改fis-conf.js
檔案的內容:
// 配置不同環境的CDN資源字首
fis.media(`prod`).match(`*.{js,css,png}`, {
domain: `http://cdn.cncounter.com/cncounter-web`
});
fis.media(`beta`).match(`*.{js,css,png}`, {
domain: `http://beta.cdn.cncounter.com/cncounter-web`
});
fis.media(`dev`).match(`*.{js,css,png}`, {
domain: `http://dev.cdn.cncounter.com/cncounter-web`
});
// 所有js, css 加 hash
fis.match(`*.{js,css,png}`, {
useHash: true
});
// 生產環境進行JS壓縮
fis.media(`prod`).match(`*.js`, {
optimizer: fis.plugin(`uglify-js`)
});
// dev 環境不加hash, 不進行壓縮和優化
fis.media(`dev`).match(`*.{js,css,png}`, {
useHash: false,
optimizer: null
});
簡單解釋一下, fis.media(`prod`)
意思是生產環境的配置。
使用fis3時,可以指定打包版本, 例如:
fis3 release prod -d cdn_release
如果不指定, 則預設為 dev
環境(fis3中稱為media)
指定輸出目錄是 -d
選項,可以指定絕對路徑,相對路徑;
另外, fis.match
是很簡單的配置,後面會覆蓋前面。
其中, useHash
指定是否根據內容生成 hash, 例如 common-utils.js
在生成目錄下會變成: common-utils_331734d.js
;
optimizer
指定優化配置,例如檔案壓縮、合併,內聯等;
其他外掛可能需要安裝額外的 npm 元件/外掛;
示例
Windows 使用示例(cmd 環境):
E:
cd E:cncounter-websrcmainwebapp
dir fis-conf.js
fis3 release prod -d cdn_release
Linux 或者 Mac 大同小異, 請根據需要自己配置,或者參考官網。
然後,進入 cdn_release 目錄, 看看對應的 html,css,js 等檔案的變化吧。
如果專案未拆分, 與 MAVEN 一起組合使用時, 先執行 fis3 的構建(可以指定 html 等檔案的輸出目錄), 然後通過 copy-resources 等外掛進行組裝。
如果需要更復雜的功能,請參考官方的配置文件: https://fex-team.github.io/fis3/docs/beginning/release.html
原文作者: 鐵錨 http://blog.csdn.net/renfufei
原文日期: 2017年7月10日
相關文章
- (轉)前端構建工具gulp入門教程前端
- web前端新手入門建議Web前端
- 使用Cloud DB構建APP 快速入門 - iOS篇CloudAPPiOS
- 前端構建:3類13種熱門工具的選型參考前端
- webpack4.0 入門篇 - 構建前端開發的基本環境Web前端
- 如何使用Docker構建前端專案Docker前端
- 使用 WebSphere Portlet Factory 構建SOA 前端Web前端
- Apache Kylin 入門 5 – 構建 CubeApache
- Apache Kylin 入門 4 - 構建 ModelApache
- Apache Kylin 入門 4 – 構建 ModelApache
- Apache Kylin 入門 5 - 構建 CubeApache
- redis 使用入門 – 構件Redis
- 使用Vite快速構建前端React專案Vite前端React
- Android Note - 使用構建分析工具Android
- 如何使用Webpack工具構建專案Web
- 前端構建_webpack前端Web
- LangGraph入門:構建ReACT架構的智慧AgentReact架構
- Android入門教程 | 使用 ConstraintLayout 構建自適應介面AndroidAI
- docker 入門講解 - 構建本地環境Docker
- Docker入門-構建第一個Java程式DockerJava
- C++入門記-建構函式和解構函式C++函式
- 使用Gulp構建前端自動化解決方案前端
- 自學前端如何快速入門?怎麼快速入門前端?前端
- 前端構建大法Gulp系列(一):為什麼需要前端構建前端
- JMeter效能測試工具使用入門JMeter
- 使用node.js構建命令列工具Node.js命令列
- 前端 Typescript 入門前端TypeScript
- 前端構建祕籍前端
- Pytorch入門:tensor張量的構建PyTorch
- 你可能需要的一本前端小冊:Vue 專案構建與開發入門前端Vue
- 使用 Nginx 構建前端日誌統計服務Nginx前端
- Quarkus入門:構建PetClinic REST API - Rafał BorowiecRESTAPI
- Gradle入門及SpringBoot專案構建GradleSpring Boot
- 快速構建Hadoop的入門練手環境Hadoop
- 微軟微服務構建框架Dapr基礎入門教程微軟微服務框架
- 爬蟲入門系列(三):用 requests 構建知乎 API爬蟲API
- Gradle入門系列(5):建立多專案構建Gradle
- 前端小白的入門前端