当前位置: 首页 > 编程日记 > 正文

【翻译】使用新的Sencha Cmd 4命令app watch

原文: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文档。


转载于:https://www.cnblogs.com/muyuge/p/6333694.html

相关文章:

《设计模式解析(第2版)》

2019独角兽企业重金招聘Python工程师标准>>> 1. 软件开过程中的视角 视角 描述 概念 “软件要负责什么?” 规约 “怎么使用软件?” 实现 ”软件怎样履行自己的责任?“ 可能使用的另外一组视角:使用视角和创建/…

Nmap帮助文档解释

目标指定&#xff08;target specifiction&#xff09; 1、用法:Nmap[扫描类型][设置]{设备列表} 注&#xff1a;[]{} -> 中的内容必须有 <> -> 中的内容可以有可以没有 2、地址类型&#xff1a;主机名、ip地址、网段 3、-iL<文件名> 通过文件输入地址 4、-i…

C++ 多线程:future 异步访问类(线程之间安全便捷的数据共享)

文章目录future前言future描述future类成员使用总结future前言 首先查看如下代码 #include <iostream> #include <thread> #include <future> #include <mutex>using namespace std;void fun1(int n,int &x) {int res 1;for (int i n; i>1;…

bldc不同载波频率_广播百科 频率调制

∧ 请关注为星标&#xff0c;在知识的海洋每天进步1%第 463期频率调制&#xff0c;简称“调频”&#xff0c;它是一种使载波的瞬时频率随调制信号的变化规律而变化的调制方法。实现这种调制方法的电路称调频器,广泛用于调频广播、电视伴音、微波通信、锁相电路和扫频仪等方面。…

基于visual Studio2013解决面试题之0403串联字符串

&#xfeff;&#xfeff;&#xfeff;题目解决代码及点评/*有 n个长为 m1的字符串&#xff0c;如果某个字符串的最后m个字符与某个字符串的前m个字符匹配&#xff0c;则两个字符串可以联接&#xff0c;问这n个字符串最多可以连成一个多长的字符串&#xff0c;如果出现循环&…

MIT开放式课程“自然语言处理”介绍

MIT开放式课程“自然语言处理”介绍 发表于 2009年01月2号 由 52nlp从订阅的Google快讯上知道这个“麻省理工学院“开放式课程网页” | 电机工程与计算机科学 | 6.881 2004秋季课程&#xff1a;自然语言处理 | 课堂讲稿”网站&#xff0c;看介绍是MIT开放课程的中文翻译计划&am…

怎么将对象里面部分的属性放到一个空的对象里面去

var obj{name:jack,age:18,sex:male}var {name,age}objvar obj2{name,age}console.log(obj2) //{name: "jack", age: 18} 这是es6的用法 还有其他的3种方法,关于对象复制的 es6 var obj {name: jack,age: 18}var data Object.assign(obj)console.log(data) //{nam…

C++多线程:thread类创建线程的多种方式

文章目录描述函数成员简介总结描述 头文件 <thread> 声明方式&#xff1a;std::thread <obj> 简介 线程在构造关联的线程对象时立即开始执行&#xff0c;从提供给作为构造函数参数的顶层函数开始。如果顶层函数抛出异常&#xff0c;则调用 std::terminate。正如我…

C C++的编译过程详解

C/C编译过程C/C编译过程主要分为4个过程1) 编译预处理2) 编译、优化阶段3) 汇编过程4) 链接程序一、编译预处理&#xff08;1&#xff09;宏定义指令&#xff0c;如#define Name TokenString&#xff0c;#undef等。 对于前一个伪指令&#xff0c;预编译所要做的是将程序中的所有…

python queue 调试_学Python不是盲目的,是有做过功课认真去了解的

有多少伙伴是因为一句‘人生苦短&#xff0c;我用Python’萌生想法学Python的&#xff01;我跟大家更新过很多Python学习教程普及过多次的Python相关知识&#xff0c;不过大家还是还得计划一下Python学习路线&#xff01;Python入门前&#xff0c;你必须得知道这些&#xff0c;…

嘿嘿 刚刚进来 记录下

大家好&#xff0c;小弟刚刚进来&#xff0c;记录一下&#xff0c;发现这个网站真是太好了&#xff01;&#xff01;转载于:https://blog.51cto.com/wikowin/1112039

Oracle数据库查看表空间是否为自增的

表空间是有数据文件组成的&#xff0c;所以看表空间是否自增即看数据文件&#xff0c;如下查自增的表空间&#xff1a; select tablespace_name,file_name,autoextensible from dba_data_files where autoextensibleYES; autoextensible: YES/NO 即表示是否自增。 转载于:https…

C++多线程:异步操作std::async和std::promise

文章目录std::async简介使用案例std::promise简介成员函数总结之前的文章中提到了C多线程中的异步操作机制 C 多线程&#xff1a;future 异步访问类&#xff08;线程之间安全便捷的数据共享)&#xff0c;接下来分享关于异步操作中 async和 promise的相关使用总结。std::async …

5如何将表格的一行数据清空_微信公众号推文中如何自定义添加表格?

微信公众号发的图文消息里经常需要有表格&#xff0c;因为表格进行数据展现更直观明了&#xff0c;所以接下来就给大家分享一下如何自定义添加表格。打开小蚂蚁编辑器&#xff0c;在编辑区点击鼠标右键&#xff0c;在出现的选项中选择【插入表格】。系统会默认添加一个5行5列的…

基于visual Studio2013解决面试题之0901奇偶站队

&#xfeff;&#xfeff;&#xfeff;题目解决代码及点评/*给定一个存放整数的数组&#xff0c;重新排列数组使得数组左边为奇数&#xff0c;右边为偶数 解决方法&#xff1a;两边同时遍历&#xff0c;如果遇到左边偶数或者右边基数&#xff0c;则交换 */#include <iostrea…

联想架构调整:智能手机业务很重要

1月5日&#xff0c;杨元庆宣布联想集团进行组织架构调整。将联想旗下业务拆分为两个新的端到端业务集团—— Lenovo 业务集团和 Think 业务集团。杨元庆在内部邮件如是说:“Lenovo业务集团(Lenovo Business Group&#xff0c;简称LBG)&#xff0c;由刘军领军&#xff0c;致力于…

activiti5/6 系列之--BpmnModel使用

BpmnModel对象&#xff0c;是activiti动态部署中很重要的一个对象&#xff0c;如果BpmnModel对象不能深入的理解&#xff0c;那可能如果自己需要开发一套流程设计器&#xff0c;使用bpmn-js使用前端或者C/S展现流程流转而不是使用工作流引擎&#xff0c;就显得力不从心。例如&a…

C++多线程:package_task异步调用任何目标执行操作

文章目录描述函数成员及使用总结我们上一篇描述关于C多线程中的异步操作相关库( async和 promise)&#xff0c;本节将分享c标准库中最后一个多线程异步操作库 package_task的学习笔记。描述 头文件 <future> 声明方式: template< class R, class ...Args > class …

ICE BOX 配置,使用----第一篇

一 理论部分 (1) 为什么要使用icebox? icebox server代替了通常的server. icebox是为了方便集中管理多个ice服务而建立的。 它通过使用icebox服务器&#xff0c;把ice服务注册进去&#xff0c;从而建立联系。 所以它除了建立传统的ice服务器&#xff0c;ice客户端&#xff0c;…

测试打桩_DNF:CEO实测旭旭宝宝红眼,打桩高达2494E,伤害超越狂人剑魂

对于红眼这个职业&#xff0c;旭旭宝宝倾注了太多的心血&#xff0c;耗资几千万打造而成。虽然&#xff0c;作为固伤职业&#xff0c;在伤害方面&#xff0c;不及剑魂和剑帝这类百分比&#xff0c;但因人数颇多&#xff0c;从而被广泛关注。而今&#xff0c;旭旭宝宝的红眼&…

122112_1452_Word1

122112_1452_Word1转载于:https://www.cnblogs.com/joshuali/archive/2013/01/11/4339303.html

C++ 多线程:时间控制

C多线程库中的各个子库都有各自的时间控制方式&#xff0c;依此来进行多线程程序运行中cpu资源的精确控制。 使用std::chrono时间库可以提供微妙、毫秒、秒及以上的时间取用,并且能够获取当前系统时间。 如下代码 #include <iostream> #include <fstream> #inclu…

array用法 numpy_NumPy总结(基础用法)

numpy可以说是Python运用于人工智能和科学计算的一个重要基础&#xff0c;近段时间恰好学习了numpy&#xff0c;pandas&#xff0c;sklearn等一些Python机器学习和科学计算库&#xff0c;因此在此总结一下常用的用法。引入numpy库的方式&#xff1a;import numpy as np1、numpy…

python 字符串 转 dict

比直接eval更好的方法>>>import ast >>>ast.literal_eval("{muffin : lolz, foo : kitty}") {muffin:lolz,foo:kitty} 用 json 遇到问题&#xff1a; >>> import json json.loads({"x": 1,"y":2}) {uy: 2, ux: 1…

rhino-java中调用javascript

2019独角兽企业重金招聘Python工程师标准>>> 在有些情况下需要在java里面执行javascript&#xff0c;这时rhino就可以帮忙了。mozilla的一个开源产品。 官网https://developer.mozilla.org/en-US/docs/Rhino 之前的一篇博客http://my.oschina.net/yybear/blog/101…

HDU 2566 统计硬币

统计硬币 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 9633 Accepted Submission(s): 6505 Problem Description 假设一堆由1分、2分、5分组成的n个硬币总面值为m分&#xff0c;求一共有多少种可能的组合方式&…

linux C 多线程编程

文章目录多线程的一些小知识&#xff1a;1创建线程 pthread_create2线程挂起 pthread_join3线程终止 pthread_exit4线程分离 pthread_detach5线程取消 pthread_cancel线程同步 pthread_mutex_t互斥变量我们在写linux的服务的时候&#xff0c;经常会用到linux的多线程技术以提高…

JavaSE replaceAll 方法

private String srcStr "index\\.php\\?action";//要替换的原字符串 private String destStr "index.php?<{\\$LANGUAGE_TYPE}>action";//目的字符串 注意.和?都要转义&#xff0c;因此需要在前面添加两个反斜杠。 关于第二个参数&#xff0c;$…

elementui datetimepicker 移动端_在 Gitee 收获 2.5K Star,前后端分离的 RuoYi 它来了

作为 2019 年 Gitee 上最受欢迎的开源项目&#xff0c;权限管理系统 RuoYi 已经在 Gitee 上获得了超过 11K 的 Star。 这次作者若依推出了基于 SpringBoot Vue Element UI 的前后端分离版本的 RuoYi-Vue&#xff0c;方便有前后端分离开发需求的同学使用。项目名称&#xff1a…

用MyEclipse开发Spring入门

1 新建一个项目 File----->New ----->Project 在出现的对话框中选择 MyEclipse 下的 Web Project&#xff0c;在Project Name 输入mySpring1&#xff0c;其他的选项默认&#xff0c;再点Finish完成&#xff1b; 2 加入Spring 包 在myspring1 项目上点右键&#xff0c;选…