【翻译】使用新的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中引入的最大的新功能,該命令可大大簡(jiǎn)化進(jìn)行小的修改和查看他們運(yùn)行幾秒后的持續(xù)過程。在本篇文章,將介紹app watch命令的基本操作以及如何自定義它的基本行為。
在app watch之前
在之前版本的Sencha Cmd,命令只執(zhí)行單一的任務(wù)并在完成后退出。而日常任務(wù)可歸結(jié)為三個(gè)常用的命令,可根據(jù)你的需要進(jìn)行更改:
- sencha app refresh:可在添加類、刪除類或更改類名后運(yùn)行。它會(huì)通過Ext.Loader來更新bootstrap文件。
 
- sencha ant sass:該命令會(huì)根據(jù)Sass源代碼重新生成CSS文件。它可在任何scss文件改變后運(yùn)行。在Ext JS 4.1種,還可以使用compass watch通過檢測(cè)文件系統(tǒng)的改變來更新Sass。
 
- sencha app build:執(zhí)行所有生產(chǎn)步驟(如上面的sass步驟)。除了這之外,它還會(huì)復(fù)制資源文件到build/resources文件夾。如果對(duì)資源、Sass或其他東西進(jìn)行更改,一個(gè)完整的生成通常是最好的選擇。如果認(rèn)為這些生成步驟并不是所需的,可通過選項(xiàng)“skip.slice=1”或“skip.sass=1”來設(shè)置。
 
由于在Ext JS 4.2和主題包的引入,compass watch再也理解不了主題的結(jié)構(gòu),這讓sencha? ant sass成了生成Sass的唯一選擇。但是,sass的生成步驟,會(huì)強(qiáng)制執(zhí)行一個(gè)完整生成且比compass watch慢許多倍。
App watch介紹
要滿足所有由Sencha Cmd包和主題包提供的靈活性,一個(gè)更聰明的compass watch是必需的。即使compass watch可以工作,但也只是工作流的一部分而已。理想的過程是可以管理所有的這些特設(shè)步驟并能確保物流是否需要,都能使應(yīng)用程序的加載做到盡可能的快。
解剖應(yīng)用程序
為了了解應(yīng)用程序是如何工作的,將應(yīng)用程序分解為基本部件非常有用:Javascript、樣式(Sass)和資源(類似圖片之類的東西)。Sencha框架(Ext JS和Sencha Touch)包含了相同的為主題所做的混合物。在Sencha Cmd,這種重復(fù)結(jié)構(gòu)(Javascript、Sass、資源)被封裝為包。
生成過程會(huì)從框架、所選擇的主題(包括基本主題)和其他所需的包中獲取這些片段并將他們與應(yīng)用程序源代碼結(jié)合起來編譯應(yīng)用程序。Sencha Cmd會(huì)利用這一過程的信息來啟用應(yīng)用程序的開發(fā)模式加載。換句話說,生產(chǎn)的副產(chǎn)品之一是,它會(huì)從應(yīng)用程序的源代碼獲取到支持應(yīng)用程序加載所需的數(shù)據(jù)。
(這段比較難理解,我直接給出原文:
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.)
為了能有效的維護(hù)這些信息,這里利用了Java 7監(jiān)視文件系統(tǒng)變化的能力基于這個(gè)功能,app watch可以監(jiān)控以下事情:
- 應(yīng)用程序的源代碼(app文件夾)
 
- 應(yīng)用程序的Sass代碼(sass文件夾)
 
- 應(yīng)用程序的資源(resources文件夾)
 
- 主題包的源代碼、Sass和資源(src、sass和resources)
 
- 主題的基本主題的source、Sass和resources文件夾
 
- 應(yīng)用程序所要求的所有包的source、Sass和resources(在app.json文件中)
 
- 其他包(包括主題包)所需的所有包的source、Sass和resources(在package.json文件中)
 
為了準(zhǔn)備好監(jiān)控所需的東西,app watch啟動(dòng)時(shí)會(huì)為一個(gè)正常生成執(zhí)行許多相同的步驟。。在生成階段,所有以上提及的位置都會(huì)被關(guān)注,然后app watch會(huì)暫停而不是終止來監(jiān)視文件系統(tǒng)的變化。
當(dāng)文件夾的內(nèi)容發(fā)生改變的時(shí)候,app watch會(huì)檢測(cè)到變化并執(zhí)行一套特別的生產(chǎn)步驟。一旦完成這些步驟,app watch又會(huì)暫停并等待更多的文件系統(tǒng)變化。根據(jù)不同的機(jī)器情況,大多數(shù)更改的周轉(zhuǎn)時(shí)間大約是5秒(可能更少)。
不監(jiān)視的文件
當(dāng)應(yīng)用程序的內(nèi)容或所有它所需的包正在被監(jiān)視的時(shí)候,這些東西的配置文件在當(dāng)前并不會(huì)被監(jiān)視。如果修改了app.json、package.json或不同的sencha.cfg中的一個(gè),就需要停止(CTRL+C)并重新啟動(dòng)app watch。
第一步類似通常的sencha app build,不過在生成完成之后,app watch將會(huì)接管并顯示“waiting for changes…(等待變化)”
一旦app.js保存后發(fā)生改變,app watch就會(huì)顯示“triggering build…(觸發(fā)生成)”
區(qū)別在于,該“生產(chǎn)”會(huì)完成進(jìn)入待發(fā)狀態(tài),并只需要幾秒鐘。完成后,又會(huì)看到“waiting for changes…”信息并繼續(xù)循環(huán)。
app watch內(nèi)部一瞥
App watch的機(jī)制大部分是在創(chuàng)建的生成腳本中實(shí)現(xiàn)的。這意味著可以自定義這些步驟。雖然所采取的具體步驟Ext JS應(yīng)用程序和Sencha Touch應(yīng)用程序會(huì)有所不同,但基本結(jié)構(gòu)是一樣的。要查看更詳細(xì)的信息,可以查看由主生成腳本“build.xml”導(dǎo)入的.sencha/app/watch-impl.xml文件。如果想了解更多有關(guān)生成腳本的信息,可參閱Sencha Cmd文檔。
轉(zhuǎn)載于:https://www.cnblogs.com/muyuge/p/6333694.html
總結(jié)
以上是生活随笔為你收集整理的【翻译】使用新的Sencha Cmd 4命令app watch的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 求一个女主播个性签名。
 - 下一篇: 亚龙湾森林公园门票多少钱