Sencha touch 2应用程序的app.json
文件包含。
"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
中?
您的json文件写得正确,对吧?
一个。是的,编写app.json
时没有任何语法错误。该项目在调用sencha app build production
答案 0 :(得分: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开发人员交谈之后,这实际上是可行的。要实现这一目标,您需要采取以下两个步骤:
1)将skipFrameworkFile
属性添加到要捆绑的每个JS资源中。这告诉编译器在构建应用程序时不要复制资源。
{
"path": "resources/js/jquery.js",
"skipFrameworkFile": true
},
"path": "resources/js/jquery2.js",
"skipFrameworkFile": true
}
2)使用@require
标记要求 app.js 文件中的每个文件。这告诉编译器将每个文件都包含在app.js文件中。
//@require resources/js/jquery.js
//@require resources/js/jquery2.js
答案 1 :(得分:4)
对于SenchaCmd 3.2,rdougan的解决方案对我不起作用。但是,而不是使用:
'skipFrameworkFile: true
我用过
'x-bootstrap': true
(通过查看SenchaCmd源代码)并且它有效!
其他步骤与rdougan的
相同希望这会有所帮助。干杯