2

在我的 Sencha 应用程序中,我有一个 Config.js 文件,其中包含一些服务 URL:

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

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

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

在部署之前,我使用

sencha app build

来自 Sencha Touch SDK 的命令来缩小和连接文件等。

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

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

  • sdk/sencha-touch.js(第一次下载后连接,缩小,缓存在本地存储中)
  • app.js(第一次下载后连接、缩小、缓存在本地存储中)

  • config.js(保持不变,没有将其缓存在本地存储中)

4

1 回答 1

1

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

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

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

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

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

<!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>

希望这对你有帮助!

于 2012-09-17T20:24:18.123 回答