无论 Sencha Touch 还是 Ext JS,官方所提供的不单纯是源码、文档等那些固然已是重要的分发,——一个强大可用的开发工具更是渐渐地被衍生出来,——它是 Sencha Cmd,一个伴随 JS 项目开发而研制的新型工具,它不但走入了我们的视野,而且一路发展,愈渐成熟。Sencha Cmd 在 2.x 版本的时候称作 Secha Command,它是纯命令行工具,没有 GUI 界面,不依附任何 IDE,却又让我们程序员有对 IDE 那般的顺手和千般“依赖”。
安装过程 System Setup
v3.0 比 2.0 改进来得大,所以我们一般推荐使用新版的 3.0。注意 3.x 版本从 Sencha Ext JS version 4.1.1a、Sencha Touch, version 2.1 Beta 3 开始支持。
来说说简单的安装过程,如下:
- 安装Jave Run-time Environment or JRE。要求版本 v1.6或以上;
- 为编辑样式,需要安装 Compass;
- 下载、安装 Sencha Cmd.http://cdn.sencha.io/senchacmd/SenchaCmd-3.0.0.250-windows.exe.zip
- 下载并解压缩 Ext JS SDK or Sencha Touch SDK.
因为多数用户使用 Win32 平台,下面就已 Win CMD 命令台为例子进行说明。安装了 Sencha Cmd,先测试一下是否安装成功。我们进入刚解压缩的 ExtJS / Sencha Touch 之 SDK 目录(或说 SDK 文件夹),注意不是 Sencha Cmd 的目录。在命令台通过 cd 进入 SDK 目录,敲入 ”Sencha“ 试试:
cd /path/to/sdk
sencha
如安装成功,显示如下:
Sencha Cmd v3.0.0
...
其实你在任意一个目录中运行 sencha.exe 程序都可以,因为安装 Sencha Cmd 的时候已经为我们设置好 Sencha Cmd 的环境变量,以方便调用。
基本命令 Command Basics
Sencha 本身就是可执行程序的名称,也可看作一种集合,其下面有许多模块供调用。用户输入命令的时候遵循一定的格式,格式如下:
sencha [category] [command] [options...] [arguments...]
不清楚某个模块怎么用?使用 help 帮助命令吧,所有命令皆可,格式如下:
sencha help [module] [action]
如果单纯敲入 sencha help:
sencha help
那么将会出现各个命令使用方法的清单,也就是“命令一览表”:
Sencha Cmd v3.0.0
OPTIONS
* --debug, -d - Sets log level to higher verbosity 日志
* --plain, -p - enables plain logging output (no highlighting) 不高亮
* --quiet, -q - Sets log level to warnings and errors only 是否出现日志
* --sdk-path, -s - sets the path to the target sdk 指定 sdk 目录所在
CATEGORIES
* compile - Compile sources to produce concatenated output and metadata 编译
* generate - Generate code like models and controllers or raw templates 代码生成
* theme - Builds a set of theme images from a given html page 主题
* app - Perform various application build processes 构建程序
COMMANDS
* ant - Invoke Ant with helpful properties back to Sencha Cmd Java Ant 打包
* build - Builds a project from a JSB3 file. 根据 JSB3 文件构建项目
* config - Loads a config file or sets a configuration property 加载配置文件
* help - Get help on using Sencha Cmd 显示帮助信息
当前所在目录 Current Directory
为了让了 Sencha Cmd 获取 SDK 的相关信息,通常我们要指定好当前所在的目录。
要运行下列命令,Sencha Cmd 必须事先晓得 SDK 之所在。你可以每次手动指定(在 sdk 当前命令下运行 sencha.exe 即可),或者一次性确定。若不指定,将会报错“[ERROR] Failed to determine framework name. Please ensure this command was issued from either a framework or application directory”:
* `sencha generate app`
* `sencha compile`
只要解压缩 SDK,有了 SDK 之所在(有目录了)于是便可以让 Sencha Cmd 确定 SDK 在哪,确定一次后则不用以后多次重复输入了。附带 -sdk 参数指定便可:
sencha -sdk /path/to/sdk ...
要运行下列命令,Sencha Cmd 必须事先晓得当前项目之所在,否则会报错。
* `sencha generate ...` (除了 `app` and `workspace`这两个命令,这两个例外)
* `sencha app ...`
“generate” 是 Sencha Cmd 其中一大模块,字面上就是动词“生成”的意思,“sencha generate app” 的话明显是导出一个空程序,因此我们说新建一个程序、生成一个新的项目也是发轫于此。该命令的第一个参数“MyApp”是项目名称,第二参数是项目的路径所在。
sencha generate app MyApp /path/to/MyApp
加 -p 参数亦然:
sencha generate app -pa d:\project\myapp\www
通过该命令,Sencha Cmd 把运行 程序最基本的要素,——整个程序结构,包括 js/css/html……还有相关的配置文件都生成到指定的地方。据官方指南说,如果基于 ExtJS SDK 生成的,其生成的项目只能运行在桌面上;如果基于 Sencha touch SDK 生成的,则其生成的项目只能运行在手机上。
好,今天就这里止笔吧。
打包你的项目
执行打包的过程依赖 compass 编译样式。这是 v3 较 v2 新增的地方,v2 不需要 compass。关于 compass 工具的简介可以参考我以前写过的一篇文章《Sencha SDK工具之Slicer简介》后半部分。compass 是一个 Ruby 项目,因此我们先安装、设置 Ruby,这里使用 RailsInstaller.exe。安装之后会在系统的环境变量中加入 gem.exe /ruby.exe,所以我们可立马安装 compass:
gem install compass
安装 compass 成功之后如下图所示:
更新程序 Upgrading Your Application
开发人员通过 Sencha Cmd 生成一个“空的项目”,等于为项目准备了一份 Sencha Touch 的副本。 那么当有新的 Senchat ouch 版本更新出来,例如从版本 ver 2.0.1 升级到 ver 2.1.0 的时候,那么我们开发人员将如何更新框架及其源码呢?Sencha Cmd 早为我们考虑到更新 SDK 的需求——整个更新过程跟创建新项目使用类似,首先还是要通过命令行进入到新版本的 SDK 目录中,然后敲入 sencha app upgrade (您项目所在的文件夹)/path/to/your_application 进行更新即可。
cd /path/to/new_version_of_sdk sencha app upgrade /path/to/your_application
若执行命令完毕表示无缝升级框架成功,完成了新版本对旧版本的覆盖。