sencha touch 入门系列 (三)sencha touch 项目创建
通过上一章节的学习,我们的开发环境已经配置好了,接下来我们开始创建第一个sencha touch的项目,网络上很多sencha touch的教程都是手动搭建项目的,
不过手动搭建的项目缺少一些sencha cmd对项目代码打包压缩编译的关键文件,
所以在这里我们从创建项目开始都是使用sencha cmd工具,请确保上一章节中所有的环境配置都已经成功,
那么接下来我们开始我们的项目创建:
1.项目创建
在项目创建前,我们先确认下我们的sencha cmd的版本,
点击开始==》运行==》cmd,
键入sencha,会显示cmd的版本,
现在最新的是4.0,如果不是最新的版本,可以键入指令
sencha upgrade
该指令会自动从远程服务器上更新sencha cmd的版本,
确认版本更新完毕后,我们来创建一个新的项目,
用cmd创建sencha touch的项目需要在sencha touch的sdk包的环境下进行,我们有两种方式:
1.1 在sencha sdk包目录下进行创建
点击开始==》运行==》键入cmd,
一般默认显示是系统用户文件夹路径下,
,
我的sdk包被我拷到了iis的站点文件夹下D:\webtest\touch-2.3.1,
所以这里我输入d:,然后回车,
cd D:\webtest\touch-2.3.1,
进入到sdk包目录下,如图:

这个时候,我们运行sencha cmd创建项目的指令
sencha generate app MyFirst ../MyFirst
generate app是创建一个新的项目,
第一个参数MyFirst对应的是项目的名称,
第二个参数../MyFirst对应是项目的输出地址,是相对路径,指向是cmd当前指定路径的上级目录,
有web开发经验的同学应该一眼就能看懂,
指令执行后,如图所示:
在不报错的情况下项目就创建成功了,
此时在我的D:/webtest目录下就会生成一个MyFirst项目文件,这就是我们新创建的sencha touch项目,
因为已经在服务站点路径下,如果生成的项目路径不在web服务站点路径下,可以把项目拷过去,
接着我们可以打开浏览器通过http://127.0.0.1/MyFirst/进行访问,
在等在文件载入完成后,我们便能看到我们第一个项目了,如图:

是不是很兴奋,你可以试着调整下浏览器的窗口大小,整个项目完全是响应式的,会根据你的窗口大小调整布局
有些人可能想直接点击新建项目下的index.html文件运行项目,此时页面会卡在载入界面并报如下错误:

这是因为cmd创建项目的时候,会生成一个bootstrap.json文件,这个文件的访问是在development.js中通过xhr的方式实现的
var xhr = new XMLHttpRequest();
xhr.open('GET', 'bootstrap.json', false);
xhr.send(null);
需要http请求,所以会报错,
不过整个项目完成后用cmd指令打包后,json文件都会被去掉,这个时候就不会出现该问题了,
接下来我们讲一下另一种创建方式
1.2 通过cmd指令直接指定sdk路径创建
该创建方式跟上一种大同小异,唯一的区别在于,不用先将指令指定到sdk包路径下了,我们可以直接用
sencha -sdk D:\webtest\touch-2.3.1 generate app MyFirst D:\webtest\MyFirst
我们在generate app 前面加上了
-sdk D:\webtest\touch-2.3.1, -sdk后面跟的就是我们的sencha touch的sdk包的路径,这样执行上面的指令,跟我们方法一里的效果是一样的, 指令执行后,我们的MyFirst项目就被创建完成了
下一章我们将对生成的项目结构做系统的分析
sencha touch 入门系列 (三)sencha touch 项目创建的更多相关文章
- sencha touch 入门系列 (九) sencha touch 布局layout
布局用来描述你应用程序中组件的大小和位置,在sencha touch中,为我们提供了下面几种布局: 1.HBox: HBox及horizontal box布局,我们这里将其称为水平布局,下面是一段演示 ...
- sencha touch 入门系列 扩展篇之sencha touch 项目打包压缩
经常有新手同学抱怨说sencha touch的项目加载速度为什么这么慢,经常要10秒左右的时间甚至更多, 大家都知道,sencha touch开发的项目中引用了大量的js文件,当我们打开项目时,st的 ...
- mybatis入门系列三之类型转换器
mybatis入门系列三之类型转换器 类型转换器介绍 mybatis作为一个ORM框架,要求java中的对象与数据库中的表记录应该对应 因此java类名-数据库表名,java类属性名-数据库表字段名, ...
- C# 互操作性入门系列(三):平台调用中的数据封送处理
好文章搬用工模式启动ing ..... { 文章中已经包含了原文链接 就不再次粘贴了 言明 改文章是一个系列,但只收录了2篇,原因是 够用了 } --------------------------- ...
- [转]C# 互操作性入门系列(三):平台调用中的数据封送处理
参考网址:https://www.cnblogs.com/FongLuo/p/4512738.html C#互操作系列文章: C# 互操作性入门系列(一):C#中互操作性介绍 C# 互操作性入门系列( ...
- sencha touch 入门系列 (四)sencha touch 新建项目目录结构解析
通过上一章节的操作,我们的项目已经创建完成了, 大家通过http://127.0.0.1/MyFirst/应该都已经访问到了自己的应用, 接下来,我们展开我们项目,如图所示: 一.目录结构 1. .s ...
- sencha touch 入门系列 (七)sencha touch 类系统讲解(上)
在mvc结构的基础上,sencha touch又使用了sencha公司为extjs4开发出来的类系统,在面向对象的编程语言中,类是对对象的定义,它描述了对象所包含的大量属性和方法. 跟面向对象语言类似 ...
- sencha touch 入门系列 (二)sencha touch 开发准备
这是本人第一次写博客教程,没什么经验,文笔也不是很好,写这教程一方面为了巩固自己这段时间的学习成果,一方面帮助大家解决问题,欢迎大家多提建议,指出问题.接下来我们就开始我们的sencha touch开 ...
- ActiveMQ入门系列三:发布/订阅模式
在上一篇<ActiveMQ入门系列二:入门代码实例(点对点模式)>中提到了ActiveMQ中的两种模式:点对点模式(PTP)和发布/订阅模式(Pub & Sub),详细介绍了点对点 ...
随机推荐
- Hive Tuning(四) 从查询计划看hive.auto.convert.join的好处
今天我们来讲一下如何看懂Hive的查询计划. hive的执行计划包括三部分 – Abstract syntax tree – 可以直接忽略 – Stage dependencies – 依赖 – S ...
- server后台程序的内存使用问题
眼下我开发的一个server后台程序存在这么一个问题,因为我的程序要不断的收发消息,并做统计.统计用的是stl的多重map.在统计中会不断的往map里赛数据. 可是每次统计后我都会调用clear()去 ...
- axis client error Bad envelope tag: definitions
http://blog.csdn.net/lifuxiangcaohui/article/details/8090503 ——————————————————————————————————————— ...
- 数学符号arg含义
argument of the maximum/minimum arg max f(x): 当f(x)取最大值时,x的取值 arg min f(x):当f(x)取最小值时,x的取值 表示使目标函数取最 ...
- Python if-else and while
if-elif语法 if condition: [tab键] command elif condition: [tab键] command elif condition: [tab键] command ...
- Namenode HA原理详解
社区hadoop2.2.0 release版本开始支持NameNode的HA,本文将详细描述NameNode HA内部的设计与实现. 为什么要Namenode HA? 1. NameNode High ...
- 建议 for 语句的循环控制变量的取值采用“半开半闭区间”写法
建议 for 语句的循环控制变量的取值采用“半开半闭区间”写法. #include <iostream> /* run this program using the console pau ...
- 【转载】C#进阶系列——动态Lamada(二:优化)
前言:前几天写了一篇动态Lamada的文章C#进阶系列——动态Lamada,受园友xiao99的启发,今天打算来重新优化下这个动态Lamada的工具类.在此做个笔记,以免以后忘了. 一.原理分析 上篇 ...
- sdut2852 小鑫去爬山9dp入门)
#include<stdio.h> int a[100][100]; int main() { int n; while(scanf("%d",&n)!=EOF ...
- mongodb group php 操作
紧接着上篇来,这篇主要讲,mongodb的group功能,做的还是挺强大的,相当对于find(),skip(),distinct()等,用法比较复杂. 测试数据 > db.fruit.find( ...