fis入門
13145 ワード
fis入門の概要
更新(2014.07.05):本書はすでにfis公式サイト:http://fis.baidu.com/docs/dev/more.htmlに収録されている.
前言:
本文はfisについて概要的に紹介し,紙面の都合上,あまり使用,設計上の詳細には触れない.詳細については、公式ドキュメントを参照してください.本文の内容の概要:fisとは 環境構築 fis例 プロジェクト構成 プラグイン開発 梱包 二次開発 比較grunt 後ろに書いてある なんだFISFISは、先端開発における自動化ツール、性能最適化、モジュール化フレームワーク、開発仕様、コード導入、開発プロセスなどの問題を解決するためのツールフレームワークである. フロントエンドの構築に専念し、一般的なニーズに簡単に対応できるように構成する必要はありません.
特長
個人のまとめ:フロントエンド工事実績に近い(フロントエンドプロジェクトの構築ニーズ、問題はほぼ考慮済み) 配置が合理的、柔軟 高効率 拡張しやすい 公式:3つのコマンドで、ほとんどの構築要件を満たします(各コマンドには数の異なるパラメータがあります).跨平台: 快速構築:合理的な構築プロセス設計、効率的な構築性能向上 性能最適化:内蔵サポートファイル圧縮、パッケージング等 ローカルデバッグ:サポートされているサーバを内蔵し、ローカルデバッグが容易(java、node版あり) フレキシブル拡張:プラグイン拡張、二次開発など便利 手軽:使い勝手は問題ないが、カスタマイズしたい場合はfisの全体的なアーキテクチャ設計を理解する必要がある(単一ファイルコンパイルプロセス、プラグイン拡張点神馬の) 環境構築
demo例
プロジェクトを次のように仮定します.ここでは主にいくつかの能力を示します.リソース埋め込み 資源配置 資源最適化 本サーバー 梱包
次のコマンドを実行します.
まず運転結果を見てみましょう
リソース埋め込み
リソースの位置付け
以下の画像、
プロファイルfis-conf.js
リソースの最適化
最適化後
ローカルサーバ
プロジェクト構成
構成の粒度によって、fisの構成は主にいくつかの項目を含む.project:コーディング、サポートファイルタイプなどのプロジェクト構成 modules:特定の種類のファイルを特定のプラグインで処理することを示すプラグイン構成. settings:具体的なプラグインに対する構成 roadmap:カスタムプロジェクトファイル属性.一般的な構成項目は、同期パスの構成(srcからdistまでのマッピング)、線上パスのマッピングです. pack:パッケージするファイルを設定します.ファイルを実際にパッケージングするのではなく、パッケージング関係マッピングテーブルを生成する deploy:配置に関する構成.
簡単な例
以下は公式の例ですが、詳しくは展開しません.http://fis.baidu.com/docs/api/fis-conf.html
プラグイン開発
まず理解が必要
更新(2014.07.05):本書はすでにfis公式サイト:http://fis.baidu.com/docs/dev/more.htmlに収録されている.
前言:
本文はfisについて概要的に紹介し,紙面の都合上,あまり使用,設計上の詳細には触れない.詳細については、公式ドキュメントを参照してください.本文の内容の概要:
特長
個人のまとめ:
node
構築に基づき、windows、mac、linux等の平台で運行可能npm install -g fis # fis npm install -g lights # fis lights ; node v0.10.27
demo例
プロジェクトを次のように仮定します.ここでは主にいくつかの能力を示します.
fis-first-demo/
└── src
├── css
│ └── main.css
├── img
│ ├── avatar.png
│ └── saber.jpeg
├── index.html ├── js │ ├── lib.js │ ├── main.js │ └── util.js └── saber.png
次のコマンドを実行します.
fis release -o fis server start
まず運転結果を見てみましょう
リソース埋め込み
<script type="text/javascript" src="js/lib.js?__inline"></script>
リソースの位置付け
以下の画像、
release
後生成/static/avatar.png
<img class="avatar" src="img/avatar.png" width="115" height="115" />
プロファイルfis-conf.js
fis.config.merge({
roadmap : {
path : [
{
// js reg : '**.js', // /static/xxx release : '/static/$&' }, { // css reg : '**.css', // /static/xxx release : '/static/$&' }, { // img .png,.gif reg : /^\/img\/(.*\.(?:png|gif))/i, // /static/xxx release : '/static/$1' } ] } });
リソースの最適化
.clear{clear: both;} .intro{margin: 10px;} .intro .avatar{float: left;} .intro .wording{float: left; margin-left: 10px;}
最適化後
.clear{clear:both}.intro{}.intro .avatar{float:left}.intro .wording{float:left}
ローカルサーバ
fis server start --type node
プロジェクト構成
構成の粒度によって、fisの構成は主にいくつかの項目を含む.
settings
両者を区別する必要があるmap.json
実際にパッケージングする必要がある場合は、このテーブルに基づいてパッケージングスキームをカスタマイズできます.簡単な例
以下は公式の例ですが、詳しくは展開しません.http://fis.baidu.com/docs/api/fis-conf.html
//fis-conf.js fis.config.merge({ modules : { parser : { //coffee fis-parser-coffee-script coffee : 'coffee-script', //less fis-parser-less // , less : ['less'], //md fis-parser-marked md : 'marked' } }, roadmap : { ext : { //less css // parser css less : 'css', //coffee js // parser js coffee : 'js', //md html // parser html md : 'html' } } });
// ascii fis.config.merge({ settings : { optimizer : { 'uglify-js' : { output : { ascii_only : true } } } } });
プラグイン開発
まず理解が必要
fis
のシングルファイル作成手順:個人まとめ:http://www.cnblogs.com/chyingp/p/fis-plugins-optimize.html公式文書:http://fis.baidu.com/docs/more/fis-base.html