The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

如何用 Visual Studio Code 開發 AngularJS 應用程式

Visual Studio Code 的出現帶給許多人震撼,但是嚴格說起來,Visual Studio Code 並不能算是一個 IDE (整合開發環境),更精確地來說,他就是一個編輯器 (Editor),只是多了一些 IDE 的功能而已。今天我打算來分享如何有效率的使用 Visual Studio Code 來開發 AngularJS 應用程式,有些小技巧可以學習一下。

準備練習環境

我們先從 AngularJS 官網 連到 angular-seed 專案,並且透過 git 將專案複製回來,最後可以直接在命令提示字元直接用 code . 開啟此目錄,請參考以下圖示:

git clone https://github.com/angular/angular-seed.git

 

體驗 Visual Studio Code 的編輯器功能

在 HTML (View) 中,其實 Visual Studio Code 已經內建了 AngularJS 的 Intellisense 功能,直接在任意標籤上新增屬性時輸入 ng 二字,即可自動出現 AngularJS 的 directives 提示,如下圖示:

如果你打開 app/app.js 檔案的話,你會發現 Visual Studio Code 並沒有針對 JavaScript 部分提供 Intellisense 功能,但還是會提示你找不到 angular 變數的定義,如下圖示:

了解 TypeScript 的人就知道,其實 Visual Studio Code 預設把所有 *.js 都當成 *.ts 來看了,也就是只要你安裝了 AngularJS 或其他第三方函式庫的 TypeScript 定義檔 (declaration file) (*.d.ts),就等於告訴 Visual Studio Code 編輯器可以認得 angular 或其他全域變數的型別定義,也就會讓 Visual Studio Code 支援 JavaScript 的 Intellisense 功能。

TypeScript 有個 DefinitelyTyped 網站,代管了非常大量的 TypeScript 定義檔,許多知名的第三方函式庫或框架都可以在這個網站找到:

如果你使用 Visual Studio 2013 的話,大部分 TypeScript 定義檔都可以透過 NuGet 自動安裝與更新,但如果用 Visual Studio Code 的話,你可以利用 TSD (TypeScript Definition manager) 命令列工具來幫你自動安裝:

image

你可以很簡單的透過 npm 安裝 tsd 命令列工具:

npm install tsd -g

裝好之後我們就可以開始使用 tsd 幫我們安裝 TypeScript 定義檔,以下是使用方式:

  1. 初始化 TSD 設定檔,輸入 tsd init 他會自動幫你建立兩個檔案分別是 tsd.jsontypings\tsd.d.ts
    tsd init

  2. 接著安裝 angular 相關的 TypeScript 定義檔
    tsd install angularjs/ --resolve --save
    上述指令的補充說明如下:
    •  angularjs/ 代表所有 angularjs 分類下的所有定義檔
    • --resolve 則是依並安裝「相依的」定義檔,上述指令會連同 jquery 的定義檔一併安裝完成
    • --save 則是要將本次安裝的 .d.ts 檔案自動加入到 typings\tsd.d.ts 檔案

     

    ※ 如果你有做測試,或許你也會想安裝 jasmine, angular-protractor 這兩個 TypeScript 定義檔:
      tsd instll jasmine angular-protractor --resolve
         備註:以上指令不加上 --save 參數主要是因為這兩個套件通常只有在特定的 .js 檔案才會需要加入參考,所以預設我不會把他加入到 typings\tsd.d.ts 檔案

    我要特別提及 typings\tsd.d.ts 這個檔案,這個檔案主要用來加入各種不同 TypeScript 定義參考,若要在 Visual Studio Code 啟用 JavaScript Intellisense 功能,只要引用這個檔案就可以把所有相關的 TypeScript 定義一併載入。

  3. 加入 TypeScript 定義參考到 app/app.js
    你可以先在檔案最上方先輸入 reference 字樣,然後按下 Tab 自動完成 (Autocomplete)


    然後輸入 ../typ 就可以了,因為 Visual Studio Code 會自動跳出檔名路徑的提示,你一樣按下 Tab 就可以完成輸入,然後你就可以立即看到 angular 底下的綠色曲線消失了,你將滑鼠移過去還會出現 angular.d.ts 中定義的型別定義提示:
    image

  4. 接下來,你就照常寫 angular 程式,這時你就會發現寫 Code 的同時就會提示你該方法要怎麼用,連 Angular Service 自動注入的變數也都會有 Intellisense 提示:


雖然有 Intellisense 還不錯,但 Code Snippet 如果有的話會更好不是嗎!

大家有空的話就到 Code Snippet Support – Visual Studio 投票這個功能吧! ;-)

 

相關連結