如何使用Sencha SDK来开发ExtJS应用?

7

我正在使用ExtJS 4.1,并在GlassFish V3.1上部署我的简单的HelloExt程序。

我正在尝试从Sencha SDK创建一个构建版本。

我已经使用了以下两个命令...

C:\>sencha create jsb -a http://localhost:8080/HelloExt/index.jsp -p appname.jsb
3 -v


C:\>sencha build -p appname.jsb3 -v -d .

根据文档,它将创建app-all.js文件。但是它在哪里创建这个文件呢?
我如何知道构建是否成功?
生成的JS文件在哪里?
我进行了搜索,但是找不到任何类似于app-all.js的东西。
更多信息请参见:
我正在使用JDK 1.6.0_12和GlassFish V3.1应用服务器。
以下是问题的编辑内容....
当我尝试使用Sencha SDK时,它会在类路径中生成一个.dpf文件。 .dpf文件的内容如下...
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE glassfish-web-app PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Servlet 3.0//EN" "http://glassfish.org/dtds/glassfish-web-app_3_0-1.dtd">
<glassfish-web-app error-url="">
  <context-root>/HelloExt</context-root>
  <class-loader delegate="true"/>
  <jsp-config>
    <property name="keepgenerated" value="true">
      <description>Keep a copy of the generated servlet class' java code.</description>
    </property>
  </jsp-config>
</glassfish-web-app>

有人能告诉我为什么这里生成了.DPF文件?为什么没有生成app-all.js文件?
1个回答

6
尝试在应用程序根目录内运行命令,然后使用相对路径:
0)打开cmd窗口
1)在cmd窗口中运行:“cd C:\[webserver_webapp_root] \ [app_name]”
换句话说,将cmd目录更改为应用程序根目录。请使用上面括号中的正确路径填充。
2)在cmd窗口中运行:“sencha create jsb -a index.html -p app.jsb3 -v”
应该在您的应用程序根目录(C:\[webserver_webapp_root] \ [app_name])中创建app.jsb3。打开它并确保它包含所有应用程序类,它应该看起来像这样:
{
    "projectName": "Project Name",
    "licenseText": "Copyright(c) 2012 Company Name",
    "builds": [
        {
            "name": "All Classes",
            "target": "all-classes.js",
            "options": {
                "debug": true
            },
            "files": [
                {
                    "clsName": "YourApp.view.Viewport",
                    "name": "Viewport.js",
                    "path": "app/view/"
                },
                // plus ALOT more classes...
            ]
        },
        {
            "name": "Application - Production",
            "target": "app-all.js",
            "compress": true,
            "files": [
                {
                    "path": "",
                    "name": "all-classes.js"
                },
                {
                    "path": "",
                    "name": "app.js"
                }
            ]
        }
    ],
    "resources": []
}

如果一切看起来正常,你可以进入下一步。如果不是,则说明你的应用程序目录结构存在问题,需要按Sencha 推荐的 ExtJS 应用架构进行修复。
您还可以使用任何错误消息来帮助确定问题。
3)更新 app.jsb3 顶部的占位符(“项目名称”等)
4)在 cmd 窗口中运行:“sencha build -p app.jsb3 -d . -v”
应用程序根目录中也应该创建 app-all.js 文件。如果 cmd 窗口在说“完成构建!”之前没有出现任何错误,则已完成所有操作。您现在可以更改 index.html 脚本链接,使其指向 app-all.js 而不是 app.js
如果出现错误,则必须修复这些错误并重新运行此操作。
其他您可以尝试的事情:
响应您的最后一条评论,-p 开关参数应该是一个 jsb3 文件而不是 jsb。
请确保 Web 服务器正在运行,您的应用程序在使用 SDK 工具之前没有任何错误。

然后尝试以下操作:

C:\Projects\HelloExt\build\web>sencha create jsb -a index.jsp -p HelloExt.jsb3 -v

C:\Projects\HelloExt>sencha create jsb -a index.jsp -p HelloExt.jsb3 -v

C:\>sencha create jsb -a [actual IP address]:8080/HelloExt/index.jsp -p HelloExt.jsb3 -v

在括号中填写您的实际IP地址(而不是localhost)。

这将生成上面第2步中显示的jsb3文件,然后您可以继续进行上面的第3步。


亲爱的杰罗尼莫,感谢您的回复。我按照您提到的方法进行了测试,但是它没有起作用。我使用了以下命令:C:\Projects\HelloExt>sencha create jsb -a index.jsp -p app.jsb3 -v。没有错误,但JS文件没有生成。之后我使用了C:\Projects\HelloExt>sencha create jsb -a web/index.jsp -p app.jsb3 -v。同样的情况,没有错误,但JS没有生成。之后我提供了部署路径:C:\Projects\HelloExt>sencha create jsb -a http://localhost:8080/HelloExt/index.j,但它也没有起作用。 - Gunjan Shah
我尝试了以下命令: C:\Projects\HelloExt\build\web>sencha create jsb -a http://localhost:8080/HelloE xt/index.jsp -p HelloExt.jsbC:\Projects\HelloExt\build\web>sencha create jsb -a http://localhost:8080/HelloE xt/index.jsp -p HelloExt.jsb -vC:\Projects\HelloExt\build\web>sencha jsb -a http://localhost:8080/HelloExt/inde x.jsp -p HelloExt.jsb -v但是它没有在Projects/build/HelloExt/WEb文件夹中生成JS文件。 - Gunjan Shah
请参见我上面的回答中的“其他尝试”的部分。 - egerardus
亲爱的Geronimo,感谢您的回复。我尝试了上述三个步骤,但不幸的是JSBe文件没有生成。我认为我的Sencha SDK安装存在其他问题。在我的命令提示符中,当我第一次输入“sencha”命令时,它会显示未找到命令,而当我第二次输入该命令时,它会找到该命令并提供如何使用命令的详细信息。因此,我认为命令和安装存在一些问题。 - Gunjan Shah
@GunjanShah 感谢您回来并发布您的解决方案。 - egerardus
显示剩余6条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接