有不只一位前端工程師問我,為什麼要用 Visual Studio 2017 做為 Angular 4 教學工具,他們又不寫 .NET,所以我重新改用 Visual Studio Code 來做為 Angular 4 教學的開發工具。
本篇將介紹如何開始撰寫 Angular 4 (Angular 2),包含各項套件的安裝說明及相依關係。
前言
安裝軟體的部分我就沒有詳細介紹,以下是我使用到的工具跟語言。
開發工具:
- Visual Studio Code。官網下載頁面
基本上 VS Code 就是純文字編輯工具,你要用 Sublime、Notepade++、Atom、TextEdit都可以。
- Nodejs 6.9.x 以上版本及 npm 3 以上版本。官網下載頁面
有很多人問我為什麼不用 VS Code 來做為 Angular 4 的開發工具,因為三個原因:
- 在我們部門前端工程師要包含 ASP.NET MVC、Web API 等,所以要寫 C# 控制伺服端事件。用不同的 IDE 開發對我們來說並不方便。
- 我從 Visual Studio 2003 就開始用 Visual Studio,用習慣了轉不了。其實是我念舊…
- Visual Studio 2017 這麼貴,而 VS Code 免費。公司有花錢買 Visual Studio 2017,我當然選貴的用阿!
也人問我為什麼不用 Angular CLI,不是 Angular CLI 不好,純粹是我個人是喜歡一步一步自己建置需要的東西。
Angular CLI 也是很方便的選擇喔!請參考 Angular CLI 官網
1. 建立專案資料夾
新增一個資料夾,然後用 VS Code 打開。可以在左邊的 EXPLORER 看到你開始的資料夾名稱,如下圖:
2. 安裝 npm 套件
2.1. 建立 npm package
在 VS Code 中按下 Ctrl
+ ~
,可以在 VS Code 中打開 Console 介面。
建立 npm package 指令如下:
1 | npm init -y |
執行完就可以看到自動建立了 package.json。如下:
2.2. 開發套件
因為要把 TypeScript 的 *.ts
檔案,透過 tsc 指令編譯成 *.js
檔,所以要把 TypeScript 安裝在全域範圍,指令如下:
1 | npm install -g --save-dev typescript@latest |
安裝開發 Angular 4 時所需的套件,指令如下:
1 | npm install --save-dev lite-server@latest @types/jasmine@latest @types/node@latest |
也可以把開發套件安裝在全域範圍,看個人需求。在參數中加入
-g
即可。
2.3. 主要套件
安裝 Angular 4 執行時所需的套件,指令如下:
1 | npm install --save @angular/common@latest @angular/compiler@latest @angular/core@latest @angular/forms@latest @angular/http@latest @angular/platform-browser@latest @angular/platform-browser-dynamic@latest @angular/router@latest core-js@latest rxjs@latest systemjs@latest zone.js@latest |
透過 npm install 會把需要的 packages 下載到 node_modules,同時自動修改 package.json。
3. 組態設定
3.1. TypeScript 設定
新增檔案 tsconfig.json,內容如下:
1 | { |
這個 tsconfig.json 是參考 Angular 官網的設定。
如果 tsconfig.json 想要用自動產生,可以使用 tsc 建立 tsconfig.json,指令如下:
1 | tsc --init |
預設的內容不一定是你要的,所以還是要修改。
3.2. 開發伺服器設定
打開 package.json,在 scripts 中加入 lite-server,如下:
1 | ... |
設定完成就可以在指令中執行:
1 | npm run dev |
啟動 lite-server 畫面如下:
還沒建立頁面,所以回傳 Cannot GET /
4. 範例程式碼
4.1. 建立 Angular 4
index.html
1 |
|
systemjs.config.js
1 | (function (global) { |
app\app.module.ts
1 | import { NgModule } from "@angular/core"; |
app\main.ts
1 | import { platformBrowserDynamic } from "@angular/platform-browser-dynamic"; |
app\app.component.html
由於我個人不是很喜歡在 TypeScript 檔案內看到 html,所以我把 template 獨立出一個檔案
1 | <h1>This is {{name}} {{version}}</h1> |
app\app.component.ts
1 | import { Component, VERSION } from "@angular/core"; |
4.2. 專案內容
完成上述步驟後,檔案結構如下:
1 | index.html # 起始頁面 |
5. 編譯 TypeScript
在 VS Code 可以開啟多個 Console,我在第一個 Console 啟動了 lite-server,我再多新增一個 Console 用來執行 tsc 編譯 TypeScript。如下:
每次都要執行 tsc 編譯也蠻麻煩的,可以透過 VS Code 的 Task Runner 來自動執行。
在 VS Code 中按下 Ctrl
+ Shift
+ P
,輸入tasks -> 選擇 Configure Task Runner -> 選擇 TypeScript。如下:
打開 tsconfig.json,在 compilerOptions 中加入 watch,如下:
1 | ... |
改完後按下 Ctrl
+ Shift
+ B
啟動 Task,之後改 *.ts
檔案就會自動編譯了。
要停止自動編譯的話按下 Ctrl
+ Shift
+ P
,輸入tasks -> 選擇 Terminate Running Task。如下: