9

app.json的 Sencha touch 2 应用程序文件包含。

"js": [
    {
        "path": "sdk/sencha-touch.js"
    },
    {"path": "js/mootools-1.2.5-core.js"}, // I want these files to be bundled too
    {"path": "js/mootools-1.2.5.1-more.js"}, // <----------+
    {"path": "js/soundmanager2-nodebug-jsmin.js"}, // <----+
           ...                                     // <----+ and there are more.
           ...

    {
        "path": "app.js",
        "bundle": true,  /* Indicates that all class dependencies are concatenated into this file when build */
        "update": "delta"
    },

现在我看到当我调用sencha app build production它时,它将所有 sencha 类编译成一个巨大的app.js文件。但是我所有的其他类都只是压缩到构建目录。它们没有串联。我怎样才能将它们包括在内app.js

常问问题

  1. 您的 json 文件已正确编写,对吗?

    A. 是的,app.json没有任何语法错误。该项目在调用上成功构建sencha app build production

4

2 回答 2

16

在查看源代码并与Cmd背后的开发人员交谈后,目前看来这是不可能的。

但是,由于构建文件是用 JavaScript 编写的,理论上,修改它并将此功能添加到 Cmd 中并不需要太多。

您可以在以下位置找到 Sencha Touch 构建文件:

CMD-ROOT/plugins/touch/current/app-build.js

CMD-ROOT命令的位置在哪里sencha- 您可以使用which sencha.

在我的系统(OSX)上,路径是:

/Users/Robert/bin/Sencha/Cmd/3.0.0.250/plugins/touch/current/app-build.js

希望这对您有所帮助。

更新

看来,在与另一个 Cmd 开发人员交谈后,这实际上是可能的。您需要采取 2 个步骤来实现它:

1) 将skipFrameworkFile属性添加到要捆绑的每个 JS 资源中。这告诉编译器在构建应用程序时不要复制资源。

{
    "path": "resources/js/jquery.js",
    "skipFrameworkFile": true
},

    "path": "resources/js/jquery2.js",
    "skipFrameworkFile": true
}

2)使用标签要求app.js文件中的每个文件。@require这告诉编译器将您的每个文件包含到您的 app.js 文件中。

//@require resources/js/jquery.js
//@require resources/js/jquery2.js
于 2013-01-28T20:03:57.830 回答
4

对于 SenchaCmd 3.2,rdougan 的解决方案对我不起作用。但是,而不是使用:

'skipFrameworkFile: true

我用了

'x-bootstrap': true

(通过查看 SenchaCmd 源代码)并且它有效!

其他步骤与 rdougan 相同

希望这可以帮助。干杯

于 2014-02-19T21:34:54.223 回答