1. 程式人生 > >Sencha Cmd 6.5 之後,ant build 的引數在哪配置?

Sencha Cmd 6.5 之後,ant build 的引數在哪配置?

Ant Build 引數配置簡介

Sencha Cmd 6.5 之前,建立的 Workspace 和 應用 裡面有 .sencha/app 目錄,裡面有一些 .properties 字尾的檔案,如下圖:

.sencha/app 目錄

這些 .properties 裡面可以配置 Sencha Cmd 在 build 專案時候的一些行為,如下圖:
production.defaults.properties

xxxx.defaults.properties 是 xxxx 構建時的預設配置,比如 production.defaults.propertiessencha app build production 時的預設配置,testing.defaults.properties

sencha app build testing 時的預設配置。

上圖中的一些配置項說明:

  • build.options.debug=false
    false 表示 build 後,去除原始碼中 <debug></debug> 之間的一些除錯性質的程式碼
  • build.options.logger=no
    no 表示 不輸出 Ext.Logger.warnExt.Logger.error 等的日誌
  • enable.resource.compression=true
    true 表示 壓縮資源
  • build.optimize
    表示 build 時對程式碼進行優化,提高執行效率
  • enable.split.mode=true
    true 表示將框架的js類(Ext.*),和開發者自己寫的類分開打包,一個 framework.js,一個 app.js
    在這裡插入圖片描述

上面的配置很有用處,比如 build production 之後報錯,但是找不到錯誤位置,我們可以在 production.properties 中進行如下配置,注意不要修改 production.defaults.properties

build.options.logger=no
build.options.debug=false
enable.resource.compression=true
build.optimize=
enable.split.mode=true

這樣 build production 之後,程式碼未壓縮,保留了除錯性質的程式碼,Ext.Logger 相關的日誌也會輸出在控制檯,app.js 檔案很小,裡面只有自己寫的類(不然如果所有程式碼類混在一起,瀏覽器 devtools 很難打得開那麼大的 app.js)。

Sencha Cmd 6.5+

Sencha Cmd 6.5 及以後,建立的專案裡去掉了 .sencha/app 目錄。
Ant Build 引數可以配置在 workspace.jsonapp.jsonpackage.json 中。

主要規則如下:

  • 以 “app” 開頭的配置,可以放在 app.json
    比如, app.output.framework.enableapp.json 中這樣寫:
{
    "output": {
        "framework": {
            "enable": true
        }
    }
}
  • workspace.package. 開頭的配置同理,放在 workspace.jsonpackage.json 中.

  • 剩下形如 build.{something}, skip.{something}enable.{something} 的,放在 app.json"properties" 鍵下, 如下:

"properties": {
    "build.compression": "",
    "enable.resource.compression": false,
    "enable.split.mode": true
}

app.json 中其它所有配置項一樣, 這個 "properties" 物件也可以巢狀放在 production, testing, development 或者其它 build profile 裡面,這樣這些配置項只會在這些作用域下生效。