指示Sencha SDK工具捆绑app.json中指定的其他js文件

Shi*_*dim 9 javascript extjs sencha-touch-2

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"
    },
Run Code Online (Sandbox Code Playgroud)

现在我看到我调用sencha app build production它时将所有的sencha类编译成一个巨大的app.js文件.但是我的所有其他类都被压缩为构建目录.它们没有连接在一起.我怎么能包括他们app.js

常问问题

  1. 你的json文件写的正确,对吧?

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

rdo*_*gan 16

在查看源代码并与Cmd背后的开发人员交谈后,似乎目前无法实现.

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

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

CMD-ROOT/plugins/touch/current/app-build.js
Run Code Online (Sandbox Code Playgroud)

命令CMD-ROOT的位置在哪里sencha- 您可以通过使用找到它which sencha.

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

/Users/Robert/bin/Sencha/Cmd/3.0.0.250/plugins/touch/current/app-build.js
Run Code Online (Sandbox Code Playgroud)

希望这对你有所帮助.

更新

看来,在与另一位Cmd开发人员交谈之后,这实际上是可能的.要实现这一目标,您需要采取以下两个步骤:

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

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

    "path": "resources/js/jquery2.js",
    "skipFrameworkFile": true
}
Run Code Online (Sandbox Code Playgroud)

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

//@require resources/js/jquery.js
//@require resources/js/jquery2.js
Run Code Online (Sandbox Code Playgroud)