原文:http://www.sencha.com/blog/using-the-new-app-watch-command-in-sencha-cmd-4/

作者:Don Griffin
Don Griffin is a member of the Ext JS core team. He was an Ext JS user for 2 years before joining Sencha and has over 20 years of software engineering experience on a broad range of platforms. His experience includes designing web application front-ends and back-ends, native GUI applications, network protocols and device drivers. Don’s passion is to build world class products that people love to use.

“sencha app watch”命令也许是在Sencha Cmd 4中引入的最大的新功能,该命令可大大简化进行小的修改和查看他们运行几秒后的持续过程。在本篇文章,将介绍app watch命令的基本操作以及如何自定义它的基本行为。

在app watch之前

在之前版本的Sencha Cmd,命令只执行单一的任务并在完成后退出。而日常任务可归结为三个常用的命令,可根据你的需要进行更改:

  • sencha app refresh:可在添加类、删除类或更改类名后运行。它会通过Ext.Loader来更新bootstrap文件。
  • sencha ant sass:该命令会根据Sass源代码重新生成CSS文件。它可在任何scss文件改变后运行。在Ext JS 4.1种,还可以使用compass watch通过检测文件系统的改变来更新Sass。
  • sencha app build:执行所有生产步骤(如上面的sass步骤)。除了这之外,它还会复制资源文件到build/resources文件夹。如果对资源、Sass或其他东西进行更改,一个完整的生成通常是最好的选择。如果认为这些生成步骤并不是所需的,可通过选项“skip.slice=1”或“skip.sass=1”来设置。

由于在Ext JS 4.2和主题包的引入,compass watch再也理解不了主题的结构,这让sencha  ant sass成了生成Sass的唯一选择。但是,sass的生成步骤,会强制执行一个完整生成且比compass watch慢许多倍。

App watch介绍

要满足所有由Sencha Cmd包和主题包提供的灵活性,一个更聪明的compass watch是必需的。即使compass watch可以工作,但也只是工作流的一部分而已。理想的过程是可以管理所有的这些特设步骤并能确保物流是否需要,都能使应用程序的加载做到尽可能的快。

解剖应用程序

为了了解应用程序是如何工作的,将应用程序分解为基本部件非常有用:Javascript、样式(Sass)和资源(类似图片之类的东西)。Sencha框架(Ext JS和Sencha Touch)包含了相同的为主题所做的混合物。在Sencha Cmd,这种重复结构(Javascript、Sass、资源)被封装为包。

生成过程会从框架、所选择的主题(包括基本主题)和其他所需的包中获取这些片段并将他们与应用程序源代码结合起来编译应用程序。Sencha Cmd会利用这一过程的信息来启用应用程序的开发模式加载。换句话说,生产的副产品之一是,它会从应用程序的源代码获取到支持应用程序加载所需的数据。

(这段比较难理解,我直接给出原文:

he build process takes these pieces from the framework, the selected theme (and its base themes) and any other required packages and combines them with the application sources to produce the compiled application. Sencha Cmd leverages the information from this process to enable “development mode” loading of your application. In other words, one of the by-products of a build is that it gets the data needed to support loading your app directly from its sources.)

监视文件系统

为了能有效的维护这些信息,这里利用了Java 7监视文件系统变化的能力基于这个功能,app watch可以监控以下事情:

  • 应用程序的源代码(app文件夹)
  • 应用程序的Sass代码(sass文件夹)
  • 应用程序的资源(resources文件夹)
  • 主题包的源代码、Sass和资源(src、sass和resources)
  • 主题的基本主题的source、Sass和resources文件夹
  • 应用程序所要求的所有包的source、Sass和resources(在app.json文件中)
  • 其他包(包括主题包)所需的所有包的source、Sass和resources(在package.json文件中)

为了准备好监控所需的东西,app watch启动时会为一个正常生成执行许多相同的步骤。。在生成阶段,所有以上提及的位置都会被关注,然后app watch会暂停而不是终止来监视文件系统的变化。

当文件夹的内容发生改变的时候,app watch会检测到变化并执行一套特别的生产步骤。一旦完成这些步骤,app watch又会暂停并等待更多的文件系统变化。根据不同的机器情况,大多数更改的周转时间大约是5秒(可能更少)。

不监视的文件

当应用程序的内容或所有它所需的包正在被监视的时候,这些东西的配置文件在当前并不会被监视。如果修改了app.json、package.json或不同的sencha.cfg中的一个,就需要停止(CTRL+C)并重新启动app watch。

第一步类似通常的sencha app build,不过在生成完成之后,app watch将会接管并显示“waiting for changes…(等待变化)”

一旦app.js保存后发生改变,app watch就会显示“triggering build…(触发生成)”

区别在于,该“生产”会完成进入待发状态,并只需要几秒钟。完成后,又会看到“waiting for changes…”信息并继续循环。

app watch内部一瞥

App watch的机制大部分是在创建的生成脚本中实现的。这意味着可以自定义这些步骤。虽然所采取的具体步骤Ext JS应用程序和Sencha Touch应用程序会有所不同,但基本结构是一样的。要查看更详细的信息,可以查看由主生成脚本“build.xml”导入的.sencha/app/watch-impl.xml文件。如果想了解更多有关生成脚本的信息,可参阅Sencha Cmd文档。

【翻译】使用新的Sencha Cmd 4命令app watch的更多相关文章

  1. Sencha Cmd 常用命令

    1.获取帮助 sencha help generate app 2.创建应用程序 sencha -sdk e:\ext\ext6 generate app -classic SimpleCMS e:\ ...

  2. sencha cmd常用命令汇总

    一.sencha generate:自动生成项目或者代码 1.sencha generate app 项目名称 生成路径 :生成一个新的extjs项目 注明:以上命令会从官网下载试用版本的ext代码到 ...

  3. Sencha Cmd 6 和 Ext JS 6 指南文档(部分官方文档中文翻译)

    近期组织了几个程序员网友,正在翻译一部分官方的Sencha Cmd 6 和 Ext JS 6 指南文档. 眼下还没翻译完,大家能够先看看 Sencha Cmd 6 和 Ext JS 6 指南文档  ( ...

  4. [ExtJS5学习笔记]第二节 Sencha Cmd 学习笔记 使你的sencha cmd跑起来

    本文地址: http://blog.csdn.net/sushengmiyan/article/details/38313537 本文作者:sushengmiyan ----------------- ...

  5. [EXtJS5学习笔记]第一节 Sencha Cmd 学习笔记 简介 Sencha Cmd是什么

    本文地址: http://blog.csdn.net/sushengmiyan/article/details/38295575 本文作者:sushengmiyan ----------------- ...

  6. Sencha Cmd是什么

    Sencha Cmd的简介 ~~~~~~~~~~~~~~~~~~~~~~~ Sencha cmd 是一个跨平台的命令行工具,它从你应用程序的新创建到部署入产品中的整个生命周期都提供了许多自动化的执行任 ...

  7. Sencha Cmd的简介

    Sencha Cmd的简介 ~~~~~~~~~~~~~~~~~~~~~~~ Sencha cmd 是一个跨平台的命令行工具,它从你应用程序的新创建到部署入产品中的整个生命周期都提供了许多自动化的执行任 ...

  8. 1、Sencha cmd学习笔记(一) 使你的sencha cmd跑起来

    带着Ext JS 5来使用sencha cmd -------------------------------------------------------------------  这个指导通过处 ...

  9. Sencha CMD 4- 安装与首次使用

    哥英文不好,网上搜索好多中文教程都是抄来抄去没有完整的介绍.所以写出来让与我一样的小伙伴惊呆下! 这篇主要是安装,后续慢慢更新 一.Sencha CMD是干啥滴!? 它是服务使用EXTJS SDK开发 ...

随机推荐

  1. 多线程(四) 实现线程范围内模块之间共享数据及线程间数据独立(Map集合)

    多个线程访问共享对象和数据的方式 1.如果每个线程执行的代码相同,可以使用同一个Runnable对象,这个Runnable对象中有那个共享数据,例如,买票系统就可以这么做. 2.如果每个线程执行的代码 ...

  2. 微信小程序实例-摇一摇抽奖

    概述 前面我们讲了如何开始微信小程序搭建和一些组件的介绍.微信小组件和微信小程序入门 微信小程序目录 为了更好的理解小程序和小程序开发,我们首先来看一下项目的目录. 首先看下根目录下的app.json ...

  3. WmS简介(三)之Activity窗口是如何创建的?基于Android7.0源码

    OK,在前面两篇博客中我们分别介绍了WmS中的token,同时也向小伙伴们区分了Window和窗口的区别,并且按照type值的不同将Android系统中的窗口分为了三大类,那么本篇博客我们就来看看应用 ...

  4. android 网络工具 之Android-Volley的demo

    1.今天详细的研究了Volley的使用,下面来给大家介绍一下: Android Volley 是Google开发的一个网络lib,可以让你更加简单并且快速的访问网络数据.Volley库的网络请求都是异 ...

  5. 2.cocos2dx 3.2中语法的不同之处,lambada表达式的使用和function和bind函数的使用

    1        打开建好的T32  Cocos2dx-3.2的一个项目 2        设置Cocos显示窗口的位置是在AppDelegate.cpp中: 3  设置自适应窗口大小的代码是在上面的 ...

  6. ROS_Kinetic_27 在ROS中使用Cartographer进行SLAM

    ROS_Kinetic_27 在ROS中使用Cartographer进行SLAM Cartographer是谷歌新開源的通用的2D和3D定位與構圖同步的SLAM工具,並提供ROS接口. 论文Real- ...

  7. Unity UGUI图文混排源码(四) -- 聊天气泡

    这里有同学建议在做聊天气泡时,可以更改为一张图集对应多个Text,这样能节省资源,不过我突然想到每个Text一个图集,可以随时更换图集,这样表情图更丰富一些,于是我就先将现有的聊天demo改为了聊天气 ...

  8. Java学习之栈和堆的区别

    在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配. 当在一段代码块定义一个变量时,Java就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java会自动释放掉为该变量所分配 ...

  9. 文档发布工具mkdocs

    mkdocs是Python的一个对 Markdown 友好的文档生成器.,小巧精美. MkDocs is a fast, simple and downright gorgeous static si ...

  10. 2.QT中操作word文档

     Qt/Windows桌面版提供了ActiveQt框架,用以为Qt和ActiveX提供完美结合.ActiveQt由两个模块组成: A   QAxContainer模块允许我们使用COM对象并且可以 ...