2012-09-12 66 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