天天看點

《AngularJS進階程式設計》——1.5 如何搭建你的開發環境

本節書摘來自異步社群《angularjs進階程式設計》一書中的第1章,第1.5節,作者:【美】adam freeman(弗裡曼)著,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視

從一個浏覽器、一個文本編輯器和一個web伺服器就可以開始你的angularjs開發之旅。用戶端web應用開發的好處之一就是你可以挑選并組合一系列開發工具,以建立一個适合你工作風格和程式設計實踐的環境。在下面的各節中,我将描述我所使用的環境,以便你可以在自己的工作站上重新建立它。

1.5.1 選擇web浏覽器

angularjs在任何現代浏覽器上都可以工作,你應該在你的使用者有可能使用到的所有浏覽器上測試你的應用。不管怎樣,你需要一個為開發而用的浏覽器,以便于搭建出開發環境,來顯示應用程式的目前狀态并執行基本的測試。

本書中将使用google chrome來完成這件事,我也建議你這樣做。不僅是因為chrome是一個可靠的浏覽器,還因為它很好地遵守了最新的w3c标準,并且有着優秀的f12開發者工具(這樣叫是因為要通過按下f12鍵來喚醒該工具)。

使用chrome進行開發的最引人注目的原因是google曾做過一個chrome擴充插件,給f12工具裡增添了對angularjs的支援。這是一個雖然有點粗糙但很有用的工具,推薦你安裝一下。chrome擴充插件市場上的安裝url的确太長,難以正确地打出來,但是隻要搜尋一下batarang angularjs就能很容易找到這個url。

1.5.2 選擇代碼編輯器

你可以為angularjs開發選用任何文本編輯器。兩個較流行的選擇是webstorm和sublime text。這兩個編輯器都是付費産品并在windows、linux和mac os上可用。兩者都提供了超越一般編輯器的增強功能,使得使用angularjs工作更為容易。

沒有什麼東西能像代碼編輯器這樣令開發者兩極分化,我發現我無法使用webstorm或者sublimit text高效地工作,這兩者都經常令我厭煩。取而代之的是,我使用microsoft’s visual studio express 2013 for web,它可以不付費地使用,而且具有對angularjs的内置支援。當然,visual studio隻在windows下運作,不過它仍是一個優秀的ide,我認為它是首屈一指的代碼編輯器。

1.5.3 安裝node.js

用戶端web應用開發的許多常用開發工具都是由javascript編寫的,并依賴node.js來運作。node.js是由google chrome浏覽器所使用的同一個javascript引擎搭建的,但卻已被調整得也可以适用于浏覽器之外的工作,這為編寫javascript應用程式提供了通用架構。

通路<code>http://nodejs.org</code>并下載下傳和安裝适用于你的平台的node.js安裝包(對于windows、linux和mac os都有可用版本)。確定已安裝了包管理器,并且安裝目錄已添加到了你的路徑中。

要測試node.js的安裝是否成功,打開一個指令行工具并輸入node。等待提示資訊變化後,然後輸入以下資訊(在同一行中):

《AngularJS進階程式設計》——1.5 如何搭建你的開發環境

1.5.4 安裝web伺服器

一個簡單的web伺服器足以用于開發,我使用一個叫作connect的node.js子產品建了一個伺服器。在node.js的安裝目錄下,運作如下指令:

《AngularJS進階程式設計》——1.5 如何搭建你的開發環境

npm是node的包安裝工具,将會拉取connect子產品所需的檔案。下一步,建立一個名為server.js的新檔案(仍然是在node.js的安裝目錄下),并寫入如清單1-4所示的内容。

清單1-4 server.js檔案的内容

《AngularJS進階程式設計》——1.5 如何搭建你的開發環境

這個簡單的檔案建立了一個基本的web伺服器,将會在端口5000上響應請求,對外提供名為angularjs的檔案夾下所包含的各個檔案,該檔案夾與磁盤上的node.js安裝目錄處在同一級。

1.5.5 安裝測試系統

angularjs的最重要的特點之一是對單元測試的支援。在本書中,我将使用karma test runner和jasmine測試架構,兩者都是廣為應用且容易使用的。在node.js的安裝檔案夾下,運作下列指令:

《AngularJS進階程式設計》——1.5 如何搭建你的開發環境

1.5.6 建立angularjs檔案夾

下一步驟是建立一個檔案夾,在開發過程中該檔案夾将包含你的angularjs應用程式。這允許你在編寫群組織所有檔案時始終可以檢查進展。在與node.js安裝檔案夾同一級下建立一個名為angularjs的檔案夾。(你可以使用一個不同的位置,但是記得要修改server.js檔案的内容以比對你所選擇的路徑。)

1.擷取angularjs庫

下一步驟是從<code>http://angularjs.org</code>下載下傳angularjs的最新穩定版。在首頁上單擊download連結,并確定stable和uncompressed選項被選中,如圖1-1所示。如圖中所示,你可以選擇非穩定(預釋出)版本,擷取壓縮版,或者使用内容分發網絡(cdn),但是本書中我打算使用未壓縮庫的一份本地拷貝。是以,将該檔案另存為angular.js到angularjs檔案夾中。

《AngularJS進階程式設計》——1.5 如何搭建你的開發環境

在我寫到這裡時,angularjs的目前穩定版本是1.2.5,我将在全書中使用該版本。由于書的編輯和出版需要時間,是以當你讀到這裡時可能已經有更新的可用版本了。盡管如此,穩定版本的angularjs api不會發生太多變化,是以你使用較新的版本應該也不會遇到任何問題。

2.擷取angularjs的附加物

如果你仔細觀察圖1-1,就會看到在左下角有一個extras連結。這個連結提供了一些附加檔案,用于擴充angularjs核心庫的功能。在後面的章節中我将使用一部分這些檔案,在表1-1中你可以看到這些所需的附加檔案的一份完整清單,以及它們各是在哪些章節使用的。

表1-1  web表單代碼擴充的類型

《AngularJS進階程式設計》——1.5 如何搭建你的開發環境

3.擷取bootstrap

我将使用bootstrap css架構來為全書執行個體中的内容渲染樣式。bootstrap并不是使用 angularjs工作時所必需的,這兩者之間也沒有直接關系,但是bootstrap有一組漂亮的css樣式,能讓我建立出清晰的内容布局,而不必定義和不斷重複定義那些自定義的css樣式。

通路<code>http://getbootstrap.com</code>并單擊download bootstrap按鈕。你将下載下傳到一份包含了javascript和css檔案的壓縮包。将下列檔案拷貝到angularjs檔案夾下,放到angularjs檔案的旁邊:

bootstrap-3.0.3/dist/css/bootstrap.css

bootstrap-3.0.3/dist/css/bootstrap-theme.css

不要重建檔案結構——把檔案直接拷貝到angularjs檔案夾下就可以了。我将在第4章中适時地介紹bootstrap。(正如檔案名所顯示的,當我寫到這裡時的bootstrap目前版本是3.0.3。)

4.擷取deployd

在第6章中,我将開始一步步建立一個真實示例程式的過程,需要建一個伺服器來向其發送http查詢,獲得資料。在第3部分中也需要用到這個工具,将用于解釋angularjs用于ajax和消費restful web服務的特性。

對于該任務,我所選擇的伺服器叫作deployd,可以從deployd.com上獲得。deployd是一個用于對web應用程式api模組化的優秀的跨平台工具。它搭建在node.js和mongodb之上,允許以json形式存儲資料(實際上是與json相近的一種派生物,但是其中的差别并不會對本書造成影響),而且伺服器端的行為是以javascript編寫的。

遺憾的是,deployd的未來看起來并不明朗。該項目背後的業務模型曾經是,為了允許向雲服務提供商部署背景服務的過程變得更為簡單,但是這看起來并沒有奏效。在我寫到這裡時,該項目已經有一段時間沒有過活躍的開發了,而且開發者可能已經轉移到了其他項目上。deployd工具仍然能夠下載下傳和安裝于本地,如果想的話,也能夠部署于任何支援node.js和mongodb的雲服務提供商。雖然deployd的開發可能已經終止,但該項目是開源的。

1.5.7 執行一個簡單的測試

為確定所有一切都已安裝好并能夠工作,在angularjs檔案夾下建立一個名為test.html的新html檔案,并将其修改為清單1-5所示的内容。

清單1-5 在test.html檔案中測試angularjs和bootstrap

《AngularJS進階程式設計》——1.5 如何搭建你的開發環境

這個檔案中的一些部分可能對于你來說是未見過的:在html元素上的ng-app屬性,以及body元素中的{{angularjs}}是來自于angularjs的;btn、btn-default、btn-success等css類是來自bootstrap的。目前不用擔心這些都是什麼意思或做什麼的——這份html文檔的目的在于檢查開發環境是否已經設定好且能夠工作。在第4章中我将解釋bootstrap是如何工作的,當然,在貫穿本書的剩餘部分中也會解釋關于angularjs你所需要了解的一切。

1.啟動web伺服器

要啟動web伺服器,從node.js的安裝目錄下運作下列指令:

《AngularJS進階程式設計》——1.5 如何搭建你的開發環境

這将加載本章中之前所建立的server.js,并在端口5000上開始監聽http請求。

2.加載測試檔案

打開chrome并浏覽這個url:<code>http://localhost:5000/test.html</code>。應該能看到圖1-2中的結果。

《AngularJS進階程式設計》——1.5 如何搭建你的開發環境

在圖1-3中,可以看到如果angularjs或者bootstrap沒有正常工作時會發生什麼。注意,你可以在這個angularjs測試中看到大括号({和}),而且内容沒有以按鈕形式展示(這應該是由bootstrap執行的)。檢查你的web伺服器的配置,檢查angularjs檔案夾下是否已放入了正确的檔案,然後再試。

《AngularJS進階程式設計》——1.5 如何搭建你的開發環境

繼續閱讀