2012-09-12 31 views
2

在我的煎茶的应用程序我有一个包含文件Config.js一些服务URL:煎茶触摸建设 - 排除文件

Ext.define('MyApp.utils.Config', { 
    singleton : true, 

    config : { 
     authBaseUrl : '...', 
     serviceBaseUrl : '...', 
     reportsBaseUrl : '...', 
     imagesUrl : '...' 
    },  

    constructor : function (config) { 
     this.initConfig(config); 
    } 
}); 

部署之前我用的是

sencha app build 

命令从煎茶触​​摸SDK以缩小和连接文件等

我的问题是,构建过程中还会将config.js添加到缩小的app.js文件,尽管如果我可以在没有需要重建/重新部署整个应用程序。我还没有找到任何方法来改变构建过程的行为。

所以在构建应用程序后,我想有这三个js文件:

  • SDK /煎茶 - touch.js(串联,精缩,缓存在localStorage的第一次下载后)
  • 应用.js文件(串联,精缩,缓存在localStorage的第一次下载后)

  • config.js(保持不变,而不会在localStorage的缓存吧)

回答

1

将它从应用程序中分离出来,以便它不被捆绑,然后将其引用到app.json中,这在类似情况下对我来说效果很好。

我也有我的开发过程中反复修改,所以在我app.json它看起来像这样的config.js:

"js": [ 
    { 
     "path": "sdk/sencha-touch-all.js" 
    }, 
    { 
     "path": "config.js" 
    }, 
    { 
     "path": "app.js", 
     "bundle": true, 
     "update": "full" 
    } 
], 

这可以确保您的config.js文件包含在构建。

然后,您需要将脚本添加到您的app.html文件中,只需确保它在主app.js之前加载。我看起来像这样(从Sencha建筑师自动生成):

<!DOCTYPE html> 
<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    <title>llm</title> 
    <link rel="stylesheet" href="resources/css/llm.css"> 
    <script src="http://maps.google.com/maps/api/js?sensor=true"></script> 
    <script src="sdk/sencha-touch-all.js"></script> 
    <script src="config.js"></script> 
    <script src="cordova-2.0.0.js"></script> 
    <script type="text/javascript" src="app.js"></script> 
</head> 
<body></body> 
</html> 

希望这可以帮助你!

+0

我试过你的解决方案,但不幸的是app.js的类不能使用config.js的字段,我得到这样的错误:TypeError:无法调用未定义的方法'getAuthBaseUrl' – tpolyak

+0

已更新我的答案 – zelexir

+0

问题是我最终的html文件看起来不像这样。构建过程会创建一个脚本标记,负责从服务器或本地存储中加载其他资源(js,css)。 – tpolyak