文档帮助

术语、图标和标签

许多类在使用配置对象创建(实例化)类时都有快捷名称。快捷名称被称为 别名(如果类扩展了 Ext.Component,则称为 xtype)。别名/xtype 列在适用类的类名旁边,以供快速参考。

访问级别

框架类或其成员可以指定为 privateprotected。否则,类/成员为 publicPublicprotectedprivate 是访问描述符,用于传达类或类成员应如何以及何时使用。

成员类型

成员语法

下面是一个类成员示例,我们可以剖析它以显示类成员的语法(在这种情况下,是从 Ext.button.Button 类查看的 lookupComponent 方法)。

让我们看一下成员行的每个部分

  • 展开/折叠 - 在成员行的左侧是一个控件,用于展开和折叠每个成员行以显示/隐藏成员详细信息。
  • 成员名称 - 类成员的名称(在本例中为 lookupComponent
  • 方法参数 - 方法使用的任何必需或可选参数(或传递给事件处理程序方法的参数)都将在方法名称旁边的括号内列出(在本例中为 ( item )
  • 返回类型 - 方法或属性返回的类实例或 javascript 对象(在本例中为 Ext.Component)。对于不返回除 undefined 以外任何内容的方法,可以省略此项,或者可以显示为用正斜杠 / 分隔的多个可能值,表示返回的内容可能取决于方法调用的结果(即,如果 get 方法调用成功,方法可能会返回 Component,如果不成功,则返回 false,这将显示为 Ext.Component/Boolean)。
  • 标志 - 适用于成员的任何标志都将显示在旁边(在本例中为 PROTECTED - 请参阅下面的标志部分)
  • 成员来源 - 在成员行的右侧是最初描述成员的类(在本例中为 Ext.container.Container)。如果成员源自当前类,则源类将显示为蓝色链接;如果它从祖先类或混入类继承,则显示为灰色。
  • 成员源代码 - 在成员来源类的右侧下方是查看成员源代码的链接(示例中为 view source
  • 参数列表 - 类方法的每个参数都将使用上面括号中找到的相同名称、预期的类或对象类型以及参数的描述列出(示例中为 item : Object)。
  • 返回值 - 如果类返回除 undefined 以外的值,则“返回值”部分将注明返回的类或对象类型以及描述(示例中为 Ext.Component
  • Since示例中未显示)- 某些成员将显示该成员首次引入的产品版本(即 Available since 3.4.0 - 示例中未显示),紧接在成员描述之后
  • Default示例中未显示)- Configs 通常显示要应用于类实例的默认配置值(如果未被覆盖)(即 Defaults to: false

成员标志

API 文档使用许多标志来进一步传达类成员的功能和意图。标签可以用文本标签、缩写或图标表示。

  • Required - 实例化类时所需的配置
  • Bindable - 配置具有 setter,允许通过 ViewModel 绑定设置此配置
  • Read Only - 属性可以读取,但不能用于在运行时配置/重新配置类实例
  • Singleton - Singleton 类在定义后立即实例化,不能手动实例化
  • Static - 静态方法或属性是属于类本身的方法或属性,而不是类的实例
  • Chainable - 指的是在调用时返回类实例的方法。
    这使得可以进行链式方法调用,例如:classInstance.method1().method2().etc();
  • Deprecated - 计划在未来的框架版本中删除的类或成员,并在当前版本中提供以实现向后兼容性。
    已弃用的类和成员将包含一条消息,指导您将来使用的首选类/方法。
  • Removed - 已删除的类或成员,仅在文档中作为在框架版本之间升级的用户的参考
  • Template - 在基类中定义的方法,旨在由子类覆盖
  • Abstract - 类或成员可以定义为抽象的。抽象类和成员建立类结构并提供有限的(如果有的话)代码。特定于类的代码将通过子类中的覆盖来提供。
  • Preventable - 如果事件处理程序返回 false,则标记为可阻止的事件将不会触发

类图标

- 表示框架类

- Singleton 框架类。*有关更多信息,请参阅 singleton 标志

- 组件类型框架类(Ext JS 框架中扩展 Ext.Component 的任何类)

- 表示类、成员或指南在当前查看的版本中是新的

成员图标

- 表示类型为 config 的类成员

- 表示类型为 property 的类成员

- 表示类型为 method 的类成员

- 表示类型为 event 的类成员

- 表示类型为 theme variable 的类成员

- 表示类型为 theme mixin 的类成员

- 表示类、成员或指南在当前查看的版本中是新的

类成员快速导航菜单

在 API 文档页面的类名下方,是一行按钮,对应于当前类拥有的成员类型。每个按钮显示按类型划分的成员计数(此计数在应用过滤器后会更新)。单击按钮将导航到该成员部分。将鼠标悬停在成员类型按钮上将显示该类型的所有成员的弹出菜单,以便快速导航。

Getter 和 Setter 方法

与类配置选项相关的 Getter 和 Setter 方法将显示在方法部分以及 API 文档和成员类型菜单的配置部分中,就在它们所处理的配置下方。Getter 和 Setter 方法文档将在配置行中找到,以便于参考。

历史记录栏

您的页面历史记录保存在本地存储中,并显示在顶部标题栏下方(使用可用的实际空间)。默认情况下,显示的唯一搜索结果是与您当前查看的产品/版本匹配的页面。您可以通过单击历史记录栏右侧的 按钮并选择“全部”单选选项来展开显示的内容。这将显示历史记录栏中所有产品/版本的所有最近页面。

在历史记录配置菜单中,您还将看到最近页面访问的列表。结果按“当前产品/版本”和“全部”单选选项进行过滤。单击 按钮将清除历史记录栏以及本地存储中保存的历史记录。

如果在历史记录配置菜单中选择“全部”,则将启用“在历史记录栏中显示产品详细信息”的复选框选项。选中后,每个历史页面的产品/版本将与历史记录栏中的页面名称一起显示。将光标悬停在历史记录栏中的页面名称上也会显示产品/版本作为工具提示。

搜索和过滤器

可以使用页面顶部的搜索字段搜索 API 文档和指南。

在 API 文档页面上,还有一个过滤器输入字段,用于使用过滤器字符串过滤成员行。除了按字符串过滤外,您还可以按访问级别、继承和只读过滤类成员。这是通过使用页面顶部的复选框完成的。

API 类导航树底部的复选框过滤类列表以包含或排除私有类。

单击空的搜索字段将显示您最近 10 次搜索,以便快速导航。

API 文档类元数据

每个 API 文档页面(JavaScript 原始类型页面除外)都有一个与该类相关的元数据菜单视图。此元数据视图将具有以下一项或多项

  • Alternate Name - 一个或多个附加的类名同义词(在 Ext JS 6.0.0 中,Ext.button.Button 类具有 Ext.Button 的备用类名)。备用类名通常为了向后兼容性而维护。
  • Hierarchy - 层次结构视图列出了当前类的继承链,一直到其祖先类,直到根基类。
  • Mixins - 混入当前类的类列表
  • Inherited Mixins - 混入当前类的祖先的类列表
  • Requires - 实例化类所需定义的所有类
  • Uses - 类在其生命周期中的某个时刻可能使用,但不一定最初实例化类所必需的类列表
  • Subclasses - 扩展当前类的类

展开和折叠示例及类成员

可运行的示例 (Fiddles) 默认在页面上展开。您可以使用代码块左上角的箭头单独折叠和展开示例代码块。您还可以使用页面右上角的切换按钮切换所有示例的折叠状态。切换所有状态将在页面加载之间记住。

类成员默认在页面上折叠。您可以使用成员行左侧的箭头图标或全局使用右上角的展开/折叠所有切换按钮来展开和折叠成员。

桌面 -vs- 移动视图

在较窄的屏幕或浏览器上查看文档将导致针对较小外形尺寸优化的视图。桌面视图和“移动”视图之间的主要区别在于

  • 全局导航将位于左侧菜单中,可通过汉堡菜单图标访问。菜单包含以下内容(在大多数页面上)
    • 当前产品的名称(作为产品着陆页的链接)
    • 用于导航回文档主页的 Sencha 图标
    • 产品菜单下拉按钮
    • API 文档和指南的导航树选项卡
  • 当前上下文导航和工具位于右侧,可通过齿轮图标访问。上下文菜单包含以下内容
    • 全局搜索输入字段
    • API 文档)带有成员过滤器、“展开/折叠所有示例”按钮、“展开/折叠所有成员行”按钮、访问级别过滤器复选框以及每个成员计数的“过滤器”选项卡
    • API 文档)包含与当前类相关的元数据菜单的“相关类”选项卡
    • 指南)指南的目录

查看类源代码

可以通过单击 API 文档页面顶部的类名来查看类源代码。可以通过单击成员行右侧的“查看源代码”链接来查看类成员的源代码。

Cmd 7.8.0


顶部

Sencha Cmd 简介

Sencha Cmd 是一个跨平台命令行工具,它为您的应用程序的完整生命周期提供了许多自动化任务,从生成新项目到将应用程序部署到生产环境。

认识 Sencha Cmd

Sencha Cmd 提供了一系列强大的、节省时间的功能,这些功能协同工作,并与 Sencha Ext JS 和 Sencha Touch 框架结合使用。Sencha Cmd 提供以下功能

  • 代码生成工具:代码生成工具,用于生成整个应用程序,并使用新的 MVC 组件扩展这些应用程序。
  • JS 编译器:一个框架感知的 JavaScript 编译器,它了解 Sencha 框架的语义,并且可以从您的源代码生成最小占用空间的构建。编译器可以优化 Sencha 框架提供的许多高级语义,以减少应用程序的加载时间。
  • Web 服务器:提供一个轻量级 Web 服务器,用于从 localhost 提供文件。
  • 原生打包:原生打包,用于将 Sencha Touch 应用程序转换为一流的移动应用程序,该应用程序可以访问设备功能,并且可以在应用商店中分发。
  • 包管理系统:分布式包管理系统,用于轻松集成由其他人或来自 Sencha 包存储库创建的包(例如 Ext JS 主题)。
  • 构建脚本:为应用程序和包生成的构建脚本,带有“before”和“after”扩展点,因此您可以自定义构建过程以适应您的特定需求。
  • 调整工具:强大的代码选择工具,用于调整应用程序最终构建中包含的内容,确定跨页面的通用代码,并使用高级集合操作对共享代码进行分区,以获得您想要的精确构建。
  • 工作区管理:协助在多个应用程序之间共享框架、包和自定义代码。
  • 图像捕获:将 CSS3 功能(例如 border-radius 和 linear-gradient)转换为旧版浏览器的精灵图。
  • 灵活的配置系统:允许在应用程序或工作区级别或机器上的所有工作区中为命令选项指定默认值。
  • 日志记录:强大的日志记录功能,可帮助您了解命令的内部工作原理并促进故障排除。
  • 第三方软件:Sencha Cmd 包括兼容版本的 Compass、Sass 和 Apache Ant。
  • 代码生成钩子:可以特定于一个页面或由工作区中的所有页面共享,例如,在生成新模型时检查编码约定或准则)。

兼容性

Sencha Cmd 支持 Sencha Ext JS 4.1.1a 或更高版本和 Sencha Touch 2.1 或更高版本。Sencha Cmd 的许多功能都需要框架支持,而框架支持仅在这些或更高版本级别才可用。一些低级命令可以用于旧版本的 Sencha 框架或通用 JavaScript。

如果您使用的是旧版本的 Ext JS,则可以使用 Sencha Cmd 的 build 命令通过您的 JSB 文件进行构建。换句话说,Sencha Cmd 可以替换 JSBuilder 来生成 JSB 文件中描述的文件的压缩版本。Sencha Cmd 不会更新您的 JSB 文件,就像已弃用的 SDK Tools v2 所做的那样。

Sencha Touch 2.0 和 Sencha Ext JS 4.0 需要已弃用的 SDK Tools v2,该工具不能与更高版本的 Touch 或 Ext JS 版本一起使用。

系统设置

下载并安装此软件

  • JRE Sencha Cmd 需要 Java 运行时环境 1.8 版本才能支持所有功能。但是,旧版本的 Cmd 将与 1.7(用于 app watch)甚至 1.6(最低支持版本)一起使用。
  • Ruby Ruby 因操作系统而异
    • Windows:从 rubyinstaller.org 下载 Ruby。获取软件的 ".exe" 文件版本并安装它。
    • Mac OS:Ruby 已预装。您可以使用 Ruby -v 命令测试是否安装了 Ruby。
    • Ubuntu:使用 sudo apt-get install ruby2.0.0 下载 Ruby。
  • iOS 打包:Apple Xcode
  • Android 打包Android SDK 工具Eclipse(可选)。

将安装路径添加到您的 PATH 环境变量。

静默安装 Sencha Cmd

某些用户可能希望在没有安装程序 GUI 的情况下安装 Sencha Cmd。如果您需要仅限 CLI 的安装过程,只需从您的命令行工具运行以下命令

Mac OSX

sudo SenchaCmd-7.x.y.z-osx.app/Contents/MacOS/installbuilder.sh --mode unattended

Linux

sudo SenchaCmd-7.x.y.z-linux.run --mode unattended

Windows

SenchaCmd-7.x.y.z-windows.exe --mode unattended

这将安装没有 GUI 安装程序的 Sencha Cmd。

更改安装路径

如果您需要更改安装路径,您可以向无人值守参数添加前缀标志。例如

sudo SenchaCmd-7.x.y.z-linux.run --mode unattended --prefix /opt

注意: 前缀标志可能因您的系统设置而异。您选择的安装路径可能需要权限更改。

验证安装

要验证 Sencha Cmd 是否正常工作,请打开命令行,将目录更改为您的应用程序,然后键入 sencha 命令。

您应该看到类似如下的输出

Sencha Cmd v7.0.n.n
...

升级 Sencha Cmd

sencha upgrade 功能允许您升级 Sencha Cmd。

检查 Sencha Cmd 的新更新

sencha upgrade --check

如果没有 --check 选项,如果您尚未拥有最新版本,则 sencha upgrade 命令将下载并安装最新版本

sencha upgrade

安装程序完成后,启动新的控制台或终端以获取对您的 PATH 环境变量的更改。

由于可以并行安装多个版本的 Sencha Cmd,因此您可以安全地尝试新版本,只需卸载它们(或调整 PATH)即可返回到以前的版本。但是,使用 sencha app upgrade 升级您的应用程序是您可能需要“回滚”的操作,如果您降级到旧版本的 Sencha Cmd。

静默升级 Sencha Cmd

某些用户可能希望在没有安装程序 GUI 的情况下升级 Sencha Cmd。如果您需要仅限 CLI 的升级过程,只需从您的命令行工具运行以下命令

sencha upgrade --unattended

这将升级没有 GUI 安装程序的 Sencha Cmd。

Beta 版本

如果您想检查 Beta 版本,请使用

sencha upgrade --check --beta

安装最新的 Beta 版本

sencha upgrade --beta

注意 最新的发行版可能位于“beta”或稳定通道中。也就是说,sencha upgrade --beta 可能会安装一个早于当前发行版的 beta 版本,该版本将由 sencha upgrade 安装。

命令基础知识

Sencha Cmd 功能按类别(或模块)和命令排列

sencha [category] [command] [options...] [arguments...]

可以使用 help 命令获得帮助。

sencha help [module] [action]

例如,尝试这个

sencha help

显示当前版本和可用的顶级命令。例如

Sencha Cmd v7.x.y.z
...

Options
  * --beta, -be - Enable beta package repositories
  * --cwd, -cw - Sets the directory from which commands should execute
  * --debug, -d - Sets log level to higher verbosity
  * --info, -i - Sets log level to default
  * --nologo, -n - Suppress the initial Sencha Cmd version display
  * --plain, -pl - enables plain logging output (no highlighting)
  * --quiet, -q - Sets log level to warnings and errors only
  * --sdk-path, -sd - The location of the SDK to use for non-app commands
  * --strict, -st - Treats warnings as errors, exiting with error if any warnings are present
  * --time, -ti - Display the execution time after executing all commands

Categories
  * app - Perform various application build processes
  * compass - Wraps execution of compass for sass compilation
  * compile - Compile sources to produce concatenated output and metadata
  * cordova - Quick init Support for Cordova
  * fs - Utility commands to work with files
  * generate - Generates models, controllers, etc. or an entire application
  * manifest - Extract class metadata
  * package - Manages local and remote packages
  * phonegap - Quick init support for PhoneGap
  * repository - Manage local repository and remote repository connections
  * theme - Commands for low-level operations on themes
  * web - Manages a simple HTTP file server

Commands
  * ant - Invoke Ant with helpful properties back to Sencha Cmd
  * audit - Search from the current folder for Ext JS frameworks and report their license
  * build - Builds a project from a legacy JSB3 file.
  * config - Load a properties file or sets a configuration property
  * help - Displays help for commands
  * js - Executes arbitrary JavaScript file(s)
  * upgrade - Upgrades Sencha Cmd
  * which - Displays the path to the current version of Sencha Cmd

详细输出

Sencha Cmd 5 中显著减少了调试输出的级别。您可以通过在命令中包含 -info 标志来重新启用详细输出。例如

 sencha -info app watch

此命令将提供有关初始化期间和文件系统更新时发生的后台进程的更多信息。

-info 标志可以与生成输出的任何 Sencha 命令一起使用。

当前目录

在许多情况下,Sencha Cmd 要求您设置特定的当前目录。或者它可能只需要知道有关相关 Sencha SDK 的详细信息。当 Sencha Cmd 从生成的应用程序文件夹或某些命令从提取的 SDK 文件夹运行时,可以由 Sencha Cmd 自动确定 SDK(或“框架”)。

重要 对于以下命令,Sencha Cmd 需要从生成的应用程序的根文件夹运行。如果未从应用程序的根文件夹运行,则命令将失败。

* `sencha generate ...` (for commands other than `app`, `package` and `workspace`)
* `sencha app ...`

包也是如此。当运行诸如 sencha package build 之类的命令时,当前目录必须是所需的包文件夹。

开发调试

您可以将代码包装在调试标记中,以允许代码在开发中运行并从生产构建中排除。

// //

Sencha Cmd 文档

Sencha Cmd 的许多指南都经过组织,以帮助您建立理解,建议您遵循此顺序。跳跃前进可能会导致混淆,因为高级指南通常假设理解早期指南的内容。

在每个指南的开头都有指向该指南任何先决条件的链接。此外,大多数指南都以一组链接结尾,以供进一步阅读。

超出基础知识

还有许多与使用 Sencha Cmd 相关的其他细节可能会有所帮助。help 命令是一个很好的参考,但是如果您想浏览所有重点,请查阅 高级 Sencha Cmd

故障排除

以下是一些解决使用 Sencha Cmd 时遇到的常见问题的技巧。

Java 堆空间

如果您在执行 Cmd 命令后收到“java heap space”错误,则可能需要增加 Java 的分配内存使用量。

Mac & Linux

将以下内容添加到 ~/.bash_profile

export _JAVA_OPTIONS="-Xms1024m -Xmx2048m"

Windows

您可以将变量添加为环境变量,也可以将以下内容添加到 startup.bat

set JAVA_OPTS="-Xms1024m -Xmx2048m"

找不到命令

如果在 OSX/Linux 上运行 sencha 导致错误消息 sencha: command not found,或者在 Windows 上导致 'sencha' is not recognized as an internal or external command, operable program or batch file,请按照以下步骤操作

  • 关闭所有现有的终端/命令提示符窗口并重新打开它们。
  • 确保 Sencha Cmd 已正确安装
    • 安装目录存在。默认情况下,安装路径是
      • Windows:C:\Users\Me\bin\Sencha\Cmd\{version}
      • Mac OS X:~/bin/Sencha/Cmd/{version}
      • Linux:~/bin/Sencha/Cmd/{version}
    • Sencha Cmd 目录的路径被添加到您的 PATH 环境变量的前面。在终端中,在 Windows 上运行 echo %PATH% 或在 Mac 或 Linux 上运行 echo $PATH。Sencha Cmd 目录应该显示在输出结果中。如果不是这种情况,请手动将其添加到您的 PATH 中。
    • 环境变量 SENCHA_CMD_{version} 已设置,其值为上述安装目录的绝对路径。从命令行,使用 echo 命令查看此变量。如果输出为空,请手动设置该环境变量。

找不到 Ruby

如果您看到与无法识别或找到 "ruby" 相关的错误,这很可能是因为 Ruby 没有安装或不在您的 PATH 中。请参阅之前的 系统设置 部分。

错误的当前目录

一个常见的错误是执行需要当前目录为解压后的 SDK 目录或应用程序目录的命令,但这样的目录尚未设置。如果未满足此要求,Sencha Cmd 将显示错误并退出。

注意 有效的应用程序目录是由 Sencha Cmd 生成的目录。

解析依赖项时出错

sencha app build 命令的工作原理是读取您的 index.html 并扫描所需的类。如果您的应用程序没有正确声明它需要的类,构建通常会完成,但不会包含您的应用程序所需的所有类。

为了确保您指定了所有必需的类,请始终在启用调试器控制台的情况下进行开发(IE/Chrome 中的“开发者工具”、FireFox 中的 FireBug 和 Safari 中的 Web Inspector),并解决出现的所有警告和错误消息。

每当您看到类似这样的警告时

[Ext.Loader] Synchronously loading 'Ext.foo.Bar'; consider adding 'Ext.foo.Bar'
explicitly as a require of the corresponding class

立即将 'Ext.foo.Bar' 添加到依赖项来源的类的 requires 数组属性中。如果是应用程序范围的依赖项,请将其添加到 Ext.application(...) 语句内的 requires 数组属性中。

Cmd 7.8.0