最近開(kāi)始接觸AngularJS,確實(shí)是一個(gè)相當(dāng)不錯(cuò)的東西,可以把很多東西簡(jiǎn)化掉。又對(duì)于其中的雙向綁定等的實(shí)現(xiàn)很好奇,加之正在學(xué)習(xí)Javascript的東西,所以覺(jué)得從源代碼這塊開(kāi)始深入學(xué)習(xí)AngularJs。
雖然可以直接通過(guò)閱讀最終的js文件來(lái)學(xué)習(xí),不過(guò)總覺(jué)得這樣入手不太容易,而項(xiàng)目源代碼本身就是一塊一塊的,同時(shí)又配有測(cè)試,從這里開(kāi)始學(xué)習(xí)的話應(yīng)該比較容易一些。
AngularJs的源碼在github上,地址是:https://github.com/angular/angular.js。
實(shí)現(xiàn)先獲取到代碼:
|
|
下載需要一點(diǎn)點(diǎn)時(shí)間…特別是你訪問(wèn)github速度比較慢的時(shí)候…
首先來(lái)看看項(xiàng)目有哪些文件夾:
再來(lái)看看文件:
|
|
運(yùn)行腳本。如果提示[Error: Cannot find module ‘qq’],可以通過(guò)npm安裝
|
|
changelog.spec.js是對(duì)應(yīng)的測(cè)試文件。
總的來(lái)說(shuō),AngularJs用Jasmine做單元測(cè)試,Karma自動(dòng)化完成單元測(cè)試,Grunt做項(xiàng)目管理,npm管理Nodejs的依賴,Bower管理javascript的包依賴。
獲取到源代碼以后我們需要運(yùn)行一下測(cè)試什么的..首先是保證你有nodejs、npm、grunt:
|
|
然后安裝nodejs依賴
|
|
安裝javascript依賴
|
|
最后運(yùn)行單元測(cè)試
|
|
效果如下圖:
如果要打包的話執(zhí)行
|
|
Gruntfile.js是Grunt的配置文件,這里有一份中文文檔,大家可以參考:http://www.gruntjs.org/。
Gruntfile.js中定義了很多任務(wù),對(duì)于學(xué)習(xí)最關(guān)鍵的是build任務(wù)了:
|
|
這里多次用到了files這個(gè)變量,而這個(gè)量是通過(guò)
|
|
從angularFiles.js文件中獲取到的。比如files[‘a(chǎn)ngularSrc’]中就有60個(gè)文件:
終于找到學(xué)習(xí)的入口了,接下來(lái)就可以通過(guò)學(xué)習(xí)files[‘a(chǎn)ngularSrc’]中定義的文件來(lái)學(xué)習(xí)AngularJS這個(gè)強(qiáng)大的框架了。
附上幾個(gè)鏈接:
http://karma-runner.github.io/
http://pivotal.github.io/jasmine/
《源代碼目錄結(jié)構(gòu)--AngularJS學(xué)習(xí)筆記(一)》 由 黃云坤 創(chuàng)作,采用 知識(shí)共享 署名-相同方式共享 4.0 國(guó)際 許可協(xié)議進(jìn)行許可。
聯(lián)系客服