<span class="string">'use strict'</span>;
exports.register = <span class="keyword">function</span>(commander){
<span class="comment">// fis relase --watch 时,就会执行这个方法</span>
<span class="keyword">function</span> watch(opt){
<span class="comment">// ...</span>
}
<span class="comment">// 打点计时用,控制台里看到的一堆小点点就是这个方法输出的</span>
<span class="keyword">function</span> time(fn){
<span class="comment">// ...</span>
}
<span class="comment">// fis release --live 时,会进入这个方法,对浏览器进行实时刷新</span>
<span class="keyword">function</span> reload(){
<span class="comment">//...</span>
}
<span class="comment">// 高能预警!非常重要的方法,fis release 就靠这个方法走江湖了</span>
<span class="keyword">function</span> release(opt){
<span class="comment">// ...</span>
}
<span class="comment">// 可以看到有很多配置参数,每个参数的作用可参考对应的描述,或者看官方文档</span>
commander
.option(<span class="string">'-d, --dest <names>'</span>, <span class="string">'release output destination'</span>, String, <span class="string">'preview'</span>)
.option(<span class="string">'-m, --md5 [level]'</span>, <span class="string">'md5 release option'</span>, Number)
.option(<span class="string">'-D, --domains'</span>, <span class="string">'add domain name'</span>, Boolean, <span class="keyword">false</span>)
.option(<span class="string">'-l, --lint'</span>, <span class="string">'with lint'</span>, Boolean, <span class="keyword">false</span>)
.option(<span class="string">'-t, --test'</span>, <span class="string">'with unit testing'</span>, Boolean, <span class="keyword">false</span>)
.option(<span class="string">'-o, --optimize'</span>, <span class="string">'with optimizing'</span>, Boolean, <span class="keyword">false</span>)
.option(<span class="string">'-p, --pack'</span>, <span class="string">'with package'</span>, Boolean, <span class="keyword">true</span>)
.option(<span class="string">'-w, --watch'</span>, <span class="string">'monitor the changes of project'</span>)
.option(<span class="string">'-L, --live'</span>, <span class="string">'automatically reload your browser'</span>)
.option(<span class="string">'-c, --clean'</span>, <span class="string">'clean compile cache'</span>, Boolean, <span class="keyword">false</span>)
.option(<span class="string">'-r, --root <path>'</span>, <span class="string">'set project root'</span>)
.option(<span class="string">'-f, --file <filename>'</span>, <span class="string">'set fis-conf file'</span>)
.option(<span class="string">'-u, --unique'</span>, <span class="string">'use unique compile caching'</span>, Boolean, <span class="keyword">false</span>)
.option(<span class="string">'--verbose'</span>, <span class="string">'enable verbose output'</span>, Boolean, <span class="keyword">false</span>)
.action(<span class="keyword">function</span>(){
<span class="comment">// 省略一大堆代码</span>
<span class="comment">// fis release 的两个核心分支,根据是否有加入 --watch 进行区分</span>
<span class="keyword">if</span>(options.watch){
watch(options); <span class="comment">// 有 --watch 参数</span>
} <span class="keyword">else</span> {
release(options); <span class="comment">// 这里这里!重点关注!没有 --watch 参数</span>
}
});
};