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字样,说明安装成功。
如果不出现以上信息,需要你检查上述步骤有无错误。
更新你的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(...)语句中的。