ExtJS(5)Sencha构建不同环境的配置

时间:2014-11-12 14:26:10

标签: extjs build environment-variables

我有一个指向API的ExtJS 5.0应用程序。在开发上,我想使用http://localhost但在生产当然是其他服务器。

有没有办法在sencha app build期间从外部设置应用变量?或者在代码中访问一些ENV变量?

如果有人能帮助我会很棒。

非常感谢,

塞巴斯蒂安

1 个答案:

答案 0 :(得分:11)

我找到了一种方法,但我不确定这是最好的方法。在你的app.json中你会找到这样一个部分:

/**
 * override objects for setting build environment specific 
 * settings.
 */
"production": {
    banana : 'no'
},
"testing": {
    banana : 'yes'
},
"development": {

},

显然我自己添加了香蕉田。我们不允许在生产中部署香蕉,因此我根据环境设置值yes或no。

然后在构建我是否进行'sencha app build testing'或'sencha app build production'时,它会将相应的环境香蕉值构建到Ext.manifest对象中。

所以在应用程序中我可以通过以下方式访问该值:

if (Ext.manifest.banana === "yes")

我认为您可以使用相同的技术为其他水果定义字段,甚至可能使用非水果相关数据。

我从这份文件中得到了这个想法: “当您启动应用程序时,您会发现app.json的已处理内容已加载为”Ext.manifest“。” http://docs.sencha.com/cmd/5.x/microloader.html

就像我说的,我不知道这是否是最好的方法,但我怀疑它可能是。