本文地址: [http://blog.csdn.net/sushengmiyan/article/details/38295575](http://blog.csdn.net/sushengmiyan/article/details/38295575)
本文作者:[sushengmiyan](http://blog.csdn.net/sushengmiyan)
-------------------------------------------------------------资源链接-----------------------------------------------------------------------
翻译来源 Sencha Cmd官方网站: [http://www.sencha.com/products/extjs/up-and-running/cmd-introduction](http://www.sencha.com/products/extjs/up-and-running/cmd-introduction)
Java se 8 下载官方网址: [http://www.oracle.com/technetwork/java/javase/downloads/index.html?ssSourceSiteId=ocomen](http://www.oracle.com/technetwork/java/javase/downloads/index.html?ssSourceSiteId=ocomen)
Sencha Cmd 官网下载: [https://www.sencha.com/products/extjs/cmd-download/](https://www.sencha.com/products/extjs/cmd-download/)
Ruby的安装包下载地址: [http://rubyinstaller.org/](http://rubyinstaller.org/)
------------------------------------------------------------------------------------------------------------------------------------------------
### **Sencha Cmd的简介**
~~~~~~~~~~~~~~~~~~~~~~~
Sencha cmd 是一个跨平台的命令行工具,它从你应用程序的新创建到部署入产品中的整个生命周期都提供了许多自动化的执行任务。
### 初遇Sencha Cmd
~~~~~~~~~~~~~~~~~~~~~
Sencha Cmd 提供了一系列功能强大的节约时间的功能,结合Sencha Ext JS 和Sencha Touch框架协同工作。Sencha Cmd 提供了如下几个能力:
1.代码生成工具:代码生成工具生成整个应用程序并且扩展生成mvc的组件框架,如,使用sencha generate app 命令,可以自动帮你生成一个完成的应用程序目录框架。
2.JS编译:框架意识,Javascript 编译器了解Sencha的语义语法,并且从你源代码构建的时候产生较少的足迹。编译器通过Sencha框架减少加载应用程序的时间来优化高层次的语义。
3.网络服务:提供了轻量级的网络服务,如,使用sencha web start 可以启动网络服务。
4.本地包装:以一流的移动应用程序访问设备给移动应用程序并且可以方便的分布到移动商店。
5.包装管理系统:方便集成的由管理系统(像Ext js 的主题)
6.构建脚本. 通过在应用程序中增加“before”和"after"给应用程序增加一些额外的设置点让客户可以定制适合自己需求的脚本。
7.转换工具:强大的代码选择器转换你项目中需要最终构建需要的代码,决定页面和局部共享代码的高级别选择集像你需要的那样构造。
8.工作空间管理:过不同的应用程序共享框架工作,包河自定义的代码透。
9.图像提取:转换CSS3的特性(比如边界半径和线性梯度)
10.灵活的配置系统: 在一台机器上允许命令行操作程序或者在工作空间级别或者整个工作空间。
11.日记功能:强大的日志功能帮助你理解整个内部的命令行工作,排除故障。
12.三方控件: Sencha cmd 包含了Compass sass 和ant 。
13.代码生成的钩子:可以指定到一个页面或者在工作控件分享所有页面,例如检查daunting的惯例或者产生新的模型。
### 兼容性
~~~~~~~~
Sencha Cmd 支持Sencha Ext JS 的4.1.1a以及以上版本还有Sencha Touch的2.1版本以及以上,许多的新功能需要在框架的支持下工作,都是可以使用的版本。
对旧版本来说,有些低级命令式可以使用的。
如果你在使用旧版本的Ext JS 你可以使用Sencha Cmd的build命令来构造你的JSB文件。换句话说,Sencha Cmd 可以将JSB文件生成压缩的构造包来替换之前版本,这操作不会更新你的那些有之前SDK生成的JSB文件。
Sencha Touch2.0和Sencha Ext JS 4.0 需要SDK2.0版本的工具,在以后的版本中是不会被支持的哦。
### 系统的安装
~~~~~~~~~~~~~
下载一下安装包并安装到你的电脑:
1.JRE Sencha Cmd 需要Java的运行环境,需要1.7或者以上的java环境支持,最低要求也是到java的1.6版本。下载地址见最上方
2.Sencha Cmd 下载地址见上方
3.Ruby ruby的不同操作系统需要不同的版本,根据不同的操作系统下载不同的版本,具体就不介绍了。支持的版本,最好是ruby的1.7 下载网址见上方
### 成功安装确认
~~~~~~~~~~~~~~~~
为了确保安装的Sencha是成功的,需要打开命令行 即CMD 切换到安装目录下,输入 sencha命令,如果看到 Sencha Cmd v5.x.x字样,说明安装成功。
![](https://box.kancloud.cn/2016-02-03_56b214e692f2e.jpg)
如果不出现以上信息,需要你检查上述步骤有无错误。
### **更新你的Sencha Cmd **
~~~~~~~~~~~~~~~~~~~~~~~~~~~
执行命令 sencha upgrade --check
如果不带--check 那么如果不急没有安装最新的版本的时候,就好给你下载并安装。
Beta版本的发布
如果想获取Beta版本,你需要使用sencha upgrade -- check --beta
### **Sencha基本命令**
~~~~~~~~~~~~~~~~~~~~
使用help命令
sencha help
~~~
Sencha Cmd v5.0.n.n
...
Options
* --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, -s - The location of the SDK to use for non-app commands
* --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 - Manage Cmd/Cordova integration
* 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 - Manage Cmd/PhoneGap integration
* 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
* 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 需要你设定一个特殊路径,或者仅仅需要知道有关Sencha sdk的相关信息,SDK可以被自动检测到当从文件夹建立应用程序的时候,有些命令可以从SDK文件夹抽取。
重要:在下面的命令中,Sencha cmd 需要从跟文件夹运行并产生一个应用程序。
Sencha generate...(可以有 app、package、workspace)
sencha app...
这个对包来说,也是成立的。当你运行如sencha package build 时当前路径必须是包文件夹。
### **Sencha cmd 文档**
~~~~~~~~~~~~~~~~~~~~~
许多sencma cmd的知道都是通过帮助组织建立你的认知的,它需要你遵循这些要求,如果跳跃的话,可能会得到一些令人疑惑的结果。
在每个指导的开始都是一些前期需要掌握的知识,更近一步,许多指导都以很多进一步的阅读来结束。
### 基本知识以外
~~~~~~~~~~~~~~~
还有很多其他关于使用sencha cmd的命令的使用帮助细节,这些可以通过help命令来获取更多帮助,但是如果你需要更高级的,那么需要下载advanced sencha cmd
### **故障排除**
~~~~~~~~~~
如果在使用的时候在osx/linux操作系统出现了 sencha : command not found 的时候,或者在widows下出现了出现了 sencha is not recognized as an internal or external command ,operable program or bach file 你可以尝试如下方法:
1.关闭所有命令行重新打开
2.确保sencha cmd是正确安装的
不能找到ruby:
如果你看到关于ruby的时候,你很可能是ruby安装的错误,重新看关于安装ruby的问题。
不在当前目录:
一个普遍的错误就是不在当前目录运行,有时候需要制定SDK路径但是你没有制定的时候就会爆出这错误。
注意:一个有效的合法的路径是你通过sencha cmd生成的。
当你解决依赖的时候出现的错误:
sencha app build命令通过读取你的index.html来工作,扫描你的需要的类信息。如果你的应用程序没有生命需要的类信息构造会完成但是不会包含所有的你应用程序需要类。
为了保证你把所有的需要的类加载进来,你可以使用调试命令行的方式来使用,比如使用ie的开发人员选项或者fiefox的fiebug功能,解决掉所有出现的警告灯问题。
当你看到如下警告的时候:
~~~
[Ext.Loader] Synchronously loading 'Ext.foo.Bar'; consider adding 'Ext.foo.Bar'
explicitly as a require of the corresponding class
~~~
立即将ext.foo.bar从requies数组中增加进去,如果需要的依赖比较多,那么就在requies的属性数组中加入,实在Ext.application(...)语句中的。
- 前言
- [EXtJS5学习笔记]第一节 Sencha Cmd 学习笔记 简介 Sencha Cmd是什么
- [ExtJS5学习笔记]第二节 Sencha Cmd 学习笔记 使你的sencha cmd跑起来
- [ExtJS5学习笔记]第三节 sencha cmd学习笔记 生成应用程序构建的内部细节
- [ExtJS5学习笔记]第四节 欢迎来到extjs5-手把手教你实现你的第一个应用
- [ExtJS5学习笔记]第五节 使用fontawesome给你的extjs5应用增加字体图标
- [ExtJS5学习笔记]第六节 Extjs的类系统Class System命名规则及定义和调试
- [ExtJS5学习笔记]第七节 Extjs5的组件components及其模板事件方法学习
- [ExtJS5学习笔记]第八节 Extjs5的Ext.toolbar.Toolbar工具条组件及其应用
- [ExtJS5学习笔记]第九节 Extjs5的mvc与mvvm框架结构简介
- [ExtJS5学习笔记]第十节 Extjs5新增特性之ViewModel和DataBinding
- [ExtJS5学习笔记]第十一节 Extjs5MVVM模式下系统登录实例
- [ExtJS5学习笔记]第十二节 Extjs5开发遇到的问题列表记录
- [ExtJS5学习笔记]第十三节 Extjs5的Ext.each方法学习
- [ExtJS5学习笔记]第十四节 Extjs5中data数据源store和datapanel学习
- [ExtJS5学习笔记]第十五节 Extjs5表格显示不友好?panel的frame属性在作怪
- [ExtJS5学习笔记]第十六节 Extjs5使用panel新增的ViewModel属性绑定数据
- [ExtJS5学习笔记]第十七节 Extjs5的panel组件增加accodion成为折叠导航栏
- [ExtJS5学习笔记]第十八节 Extjs5的panel的dockeditems属性配置toolbar
- [ExtJS5学习笔记]第十九节 Extjs5中通过设置form.Panel的FieldSet集合属性控制多个field集合
- [ExtJS5学习笔记]第二十节 Extjs5配合数组的push方法,动态创建并加载组件
- [ExtJS5学习笔记]第二十一节 Extjs5中使用config配置给ext.widget或者create方法传递参数
- [ExtJS5学习笔记]第二十二节 Extjs5中使用beforeLabelTpl配置给标签增加必填选项星号标志
- [ExtJS5学习笔记]第二十三节 Extjs5中表格gridpanel的列格式设置
- [ExtJS5学习笔记]第二十四节 Extjs5中表格gridpanel或者表单数据后台传输remoteFilter设置
- [ExtJS5学习笔记]第二十五节 利用window.open()函数实现ExtJS5的登陆页面跳转
- [EXTJS5学习笔记]第二十六节 在eclipse/myeclipse中使用sencha extjs的插件
- [ExtJS5学习笔记]第二十七节 CMD打包错误 Error C2009: YUI Parse Error (identifier is a reserved word => debugger;)
- [ExtJS5学习笔记]第二十八节 sencha ext js 5.1.0发布版本正式发布 extjs doc下载地址
- [ExtJS5学习笔记]第二十九节 sencha ext js 5.1.0中动态更换皮肤主题
- [ExtJS5学习笔记]第三十节 sencha extjs 5表格gridpanel分组汇总
- [ExtJS5学习笔记]第三十一节 sencha extjs 5使用cmd生成的工程部署到tomcat服务器
- [ExtJS5学习笔记]第三十二节 sencha extjs 5与struts2的ajax交互配置
- [ExtJS5学习笔记]第三十五节 sencha extjs 5 组件查询方法总结