本文作者:sushengmiyan
-------------------------------------------------------------資源連結-----------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------
Sencha cmd提供的構造腳本是将足見綁定在一起并且是使許多低級指令(像編譯)變得自動化,很少有出現适合一個工具滿足所有需求的這樣的解決方案,是以構造腳本提供了很多可以進行選擇的選項讓你去配置和客戶化的定制這些行為,這個指引将要解釋在構造腳本後面的規則以及你可能需要去修改來适應你需求的做法。
閱讀本文需要你閱讀之前兩章的内容
-----------------------
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICdzFWRoRXdvN1LclHdpZXYyd2LcBzNvwVZ2x2bzNXak9CX90TQNNkRrFlQKBTSvwFbslmZvwFMwQzLcVmepNHdu9mZvwFVywUNMZTY18CX052bm9CX1Z0VlBXMyoVdWdUY6Z1MjZXUYpVd1kmYr50MZV3YyI2cKJDT29GRjBjUIF2LcRHelR3LcJzLctmch1mclRXY39DOxczMxIDN0ETMzcDM0EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
特别的,它會調用腳本中的”build“目标,這意味着全部的過程都可以被檢測擴充并且可以修改。
因為sencha app build 簡單的調用了ant中”build.xml“中的”build“目标,你可以直接操作ant來達到相同的效果。這對于使用Eclipse或者netbeans的使用者來說是很有幫助的
同樣的,對于了解ant的來說,內建服務也是可持續的。
生成的”build.xml“ 是最小的一個ant腳本,可以使用ant的import功能來導入”.sencha/app/build-impl.xml“類似的檔案任務。由于"build.xml"後期是可能會被修改的,但是”.sencha/app//*-impl.xml“檔案是不會被修改的,這些檔案會被sencha app upgrade程式給更新替換掉,除非必須否則不要修改這些檔案。然而這些檔案時非常優秀的,隻是修改需要特别留意。
---------------
下面的目标定義了應用程式構造的産生到結束的整個過程,除了init方法,其他目标都有一個屬性可以設定為從1開始的數字。
init refresh resolve js resources sass slice page native-package
除了init其他目标都可以通過字首增加 skip.的方式來時目标無效。
比如 skip.slice = 1
如果隻想更新一部分就可以隻想這樣的指令,比如隻更新sass 可以執行 sencha ant sass就隻會構造sass
------------------------------
在sencha app build指令腳本後的許多方面是通過屬性來控制的,這樣說來,就有兩種配置方式,1.通過配置屬性來配置,2.通過構造屬性來配置
想要看目前配置的資訊,可以執行如下指令 sencha diag show
多數情況下,你可以通過字首告訴他們從何而來。
app. 參照 app,json 和.sencha/app/sencha.cfg
workspace. 參見workspace.json和.sencha/app/sencha.cfg
framework. 參考cmd/sencha.cfg在sencha cmd 安裝目錄中
cmd.可以再sencha cmd的安裝目錄看到
使用配置檔案是使用比較廣泛的也是被advanced sencha cmd推薦的。
構造腳本定義了好多其他屬性,這些屬性都是以build.來結尾的
想看目前的值得話,在你應用程式目錄下調用以下指令
sencha ant .props
設定這些build屬性
許多方式可以配置你的構造,最簡單的方方就是編輯他們的配置屬性檔案,決定要修改哪一個檔案你最好知道這些檔案什麼時候被調用。
”local.properties“: 目前來說,是第一個載入的,這個檔案的設計初衷就是給目前本地機器使用的。這個檔案就不應該送出到版本控制中被别人使用,這些設定比其他任何檔案優先級都高,
2.”.senche/app/${build.enviroment}.properties“--根基是build.enviroment屬性檔案,下方的一個會被載入,設定這些檔案的屬性可以讓你從開始建構的時候擷取不同的數值
”.sencha/app/native.properties“
".sencha/app/package.properties"
".sencha/app/production.properties"
".sencha/app/testing.properties"
3.".sencha/app/build.properties"
這些屬性石在後期加載的,比build-enviroment-specific屬性加載的晚一些的,這些屬性是被所有的環境變量使用的,這些檔案 是被設計為客戶化定制使用的。
4.“sencha/app/defaults.properties” 這些屬性最後被加載這些檔案是被sencha cdm擁有的,并且當有新屬性更高的時候這裡會更新。這個檔案服務了一些屬性集,不應該被編輯的,可以修改其他的來達到你的目的。
----------
許多普遍的需求是通過構造需求的,但是了解所有的方式是不可能的。當配置選項的時候不能達到目的的時候下一個自定義的設定就可以實作了通過“build.xml”檔案ant腳本來實作。
另外,對于import指令來說,build.xml包含了一些不同的擴充點,這些都是在可以選擇的所有ant 目标和後期命名的過程中的,當你使用-before或者-after時。最常見的字首擴充點如下:
init(-befor-init -after-init)
refresh(-before-refresh -after-refresh)
resolve(-before-resolve -after-resolve)
js(-before-js -after-js)
resources(-beifore-resources -after-resources)
sass(-before-sass -after-sass)
slice(-befor-slice -after-slice)
page(-befor-page -after-page)
native-package(-native-packege -after-packege)
為了執行增加的before after處理步驟,給build.xml檔案增加一個屬性 這些目标可以在你的 ant執行的時候被調用