Ext JS动态选择构建配置文件

时间:2017-05-24 05:41:37

标签: javascript extjs

我正在使用Ext JS 6.2.0,并且我使用Sencha Cmd生成了一个应用程序。

在“app.json”中,我创建了以下构建配置文件:

 /**
 * Build Profiles. This object's properties are each a "build profile". You can
 * add as many as you need to produce optimized builds for devices, themes, locales
 * or other criteria. Your "Ext.beforeLoad" hook (see index.html) is responsible for
 * selecting the desired build profile by setting "Ext.manifest" to one of these
 * names.
 *
 */

 "builds": {
    "aria_english":{
        "theme": "theme-aria",
        "locale": "en"
    },

    "neptune_chinese": {
        "theme": "theme-neptune",
        "locale": "zh_CN"
    },

    "gray_spanish": {
        "theme": "theme-gray",
        "locale": "es"
    }
},

我可以通过运行cmd来选择其中一个构建:

sencha app build aria_english

但我不想重新构建应用程序来更改构建配置文件。我想根据URL或数据来选择构建配置文件。

我看了Sencha's doc on Dynamic Manifest。并在microloader之前的“index.html”中添加了以下代码。

<script type="text/javascript">
    var Ext = Ext || {};
    Ext.beforeLoad = function (tags) {
        Ext.manifest = 'neptune_chinese';
    };
</script>

我收到了错误:

  

SyntaxError:JSON.parse:JSON数据第1行第1列的意外字符[了解详情] bootstrap.js:1911:32

------------------更新--------------------

我在app.json的“bootstrap”部分添加了“manifest”设置。

"bootstrap": {
    "base": "${app.dir}",
    "manifest": "${build.id}.json",
    "microloader": "bootstrap.js",
    "css": "bootstrap.css"
},

然后,在我运行“sencha app build”之后,会为每个配置文件(aria_english.json,aria_english.jsonp等)自动生成.json和.jsonp文件。

但是,如果我将“Ext.manifest”更改为其中一个配置文件名称,则语言环境将会更改,但主题将保持不变。

我得到了错误:

  

XML解析错误:格式不正确   地点:http://localhost/buildTest/aria_english.json?_dc=1495764803737   第1行,第1列:aria_english.json:1:1

0 个答案:

没有答案