一、 背景介紹:
兩個概念:
- 關于
Angular
版本,Angular
官方已經統一命名Angular 1.x
統稱為Angular JS
;Angular 2.x
及以上統稱Angular
; -
CLI
是Command Line Interface的簡寫,是一種命令行接口,實現自動化開發流程,比如:ionic cli
、vue cli
等;它可以創建項目、添加文件以及執行一大堆開發任務,比如測試、打包和發布。
二、安裝Angular CLI
1. 首先確認安裝了node.js
和npm
// 顯示當前node和npm版本
$ node -v
$ npm -v
// node 版本高于6.9.3 npm版本高于3.0.0
2. 全局安裝typescript
(可選)
$ npm install -g typescript
// 新建項目的時候會自動安裝typescript(非全局)所以這里也可以不用安裝。
3. 安裝Angular CLI
$ npm install -g @angular/cli
經過不算漫長的等待,你的Angular CLI
就裝好了。確認一下:
$ ng v
// 出現下面畫面說明安裝成功,如果不成功你可能需要uninstall一下,再重新來過
$ ng v
_ _ ____ _ ___
/ \ _ __ __ _ _ _| | __ _ _ __ / ___| | |_ _|
/ △ \ | '_ \ / _` | | | | |/ _` | '__| | | | | | |
/ ___ \| | | | (_| | |_| | | (_| | | | |___| |___ | |
/_/ \_\_| |_|\__, |\__,_|_|\__,_|_| \____|_____|___|
|___/
@angular/cli: 1.1.1
node: 7.10.0
os: darwin x64
期間可能會失敗(先看錯誤信息),可能由于node-sass
這個包被墻了,所以解決辦法有兩個:要么用梯子,要么用淘寶鏡像。
// 淘寶鏡像解藥
SASS_BINARY_SITE=https://npm.taobao.org/mirrors/node-sass/ npm install node-sass
當然你也可以所有的東西都從淘寶源來安裝,整個過程會快不少:
// 安裝cnpm
npm install -g cnpm --registry=https://registry.npm.taobao.org
三、新建Angular項目
1. 新建Angular
項目:
$ ng new my-app
這里要等很久啊,大概要下載141M東西。
如果你已經建好了項目文件夾就可以使用ng init my-app
來新建項目,ng init
和ng new
的區別是ng new
會幫我們創建一個和項目名稱相同的文件夾。
趁著它在下載,來看一下運行ng new
之后Angular cli
已經幫我們干了什么:
$ ng new helloKeriy
installing ng
create .editorconfig
create README.md
create src/app/app.component.css // 使用HTML模板、CSS樣式和單元測試定義AppComponent組件。 它是根組件,隨著應用的成長它會成為一棵組件樹的根節點。
create src/app/app.component.html
create src/app/app.component.spec.ts
create src/app/app.component.ts // 定義AppModule,這個根模塊會告訴Angular如何組裝該應用
create src/app/app.module.ts
create src/assets/.gitkeep // 這個文件夾下你可以放圖片等任何東西,在構建應用時,它們全都會拷貝到發布包中。
create src/environments/environment.prod.ts
create src/environments/environment.ts
create src/favicon.ico // 每個網站都希望自己在書簽欄中能好看一點。 請把它換成你自己的圖標。
create src/index.html // 宿主頁面
create src/main.ts
create src/polyfills.ts
create src/styles.css // 公共樣式
create src/test.ts // 這是單元測試的主要入口點
create src/tsconfig.app.json
create src/tsconfig.spec.json
create src/typings.d.ts
create .angular-cli.json // Anguar 編譯依賴
create e2e/app.e2e-spec.ts // e2e 端對端測試目錄
create e2e/app.po.ts
create e2e/tsconfig.e2e.json
create .gitignore
create karma.conf.js
create package.json // Angular 的依賴包
create protractor.conf.js
create tsconfig.json // TypeScript 編譯器的參數
create tslint.json
Successfully initialized git.
Installing packages for tooling via npm.
Installed packages for tooling via npm.
Project 'helloKeriy' successfully created.
這里也可以使用淘寶源了安裝:
$ ng new helloKeriy --skip-install // 先跳過npm安裝
$ cd helloKeriy
$ cnpm install // 使用淘寶源安裝
那么,這時候Angular cli
幫你干了以下這么多事情:
- 創建
helloKeriy
目錄 - 應用程序相關的源文件和目錄將會被創建
- 應用程序的所有依賴 (
package.json
中配置的依賴項) 將會被自動安裝 - 自動配置項目中的
TypeScript
開發環境 - 自動配置
Karma
單元測試環境 - 自動配置
Protractor
(end-to-end) 測試環境 - 創建
environment
相關的文件并初始化為默認的設置
2. 成果展示
安裝完成之后就可以啟動項目了:
cd helloKeriy
ng serve -open
ng serve
命令會啟動開發服務器,監聽文件變化,并在修改這些文件時重新構建此應用。
使用--open
(或-o
)參數可以自動打開瀏覽器并訪問http://localhost:4200/
。
接下來你將看到:
上面展示的是我們的根組件,我們科室適當修改其中的一些信息,顯示自己喜歡的內容。
ng serve
命令提供了很多參數,可以適當參考。以下參數僅供參考:
-
--dry-run: boolean
, 默認為false
, 若設置dry-run
則不會創建任何文件 -
--verbose: boolean
, 默認為false
-
--link-cli: boolean
, 默認為 false, 自動鏈接到@angular/cli
包 -
--skip-install: boolean
, 默認為false
, 表示跳過npm install
-
--skip-git: boolean
, 默認為false
, 表示該目錄不初始化為 git 倉庫 -
--skip-tests: boolean
, 默認為false
, 表示不創建tests
相關文件 -
--skip-commit: boolean
, 默認為false
, 表示不進行初始提交 -
--directory: string
, 用于設置創建的目錄名,默認與應用程序的同名 -
--source-dir: string
, 默認為'src'
, 用于設置源文件目錄的名稱 -
--style: string
, 默認為'css'
, 用于設置選用的樣式語法 ('css'
,'less'
or'scss'
) -
--prefix: string
, 默認為'app'
, 用于設置創建新組件時,組件選擇器使用的前綴 -
--mobile: boolean
, 默認為false
,表示是否生成 Progressive Web App 應用程序 -
--routing: boolean
, 默認為false
, 表示新增帶有路由信息的模塊,并添加到根模塊中 -
--inline-style: boolean
, 默認為false
, 表示當創建新的應用程序時,使用內聯樣式 -
--inline-template: boolean
, 默認為false
, 表示當創建新的應用程序時,使用內聯模板
四、Angular CLI簡單使用
1. 新建組件
$ ng generate component great-angular
installing component
create src/app/great-angular/great-angular.component.css
create src/app/great-angular/great-angular.component.html
create src/app/great-angular/great-angular.component.spec.ts
create src/app/great-angular/great-angular.component.ts
update src/app/app.module.ts
如你所見,Angular cli
幫我們干了如下事情:
src/app/great-angular
目錄被創建
great-angular
目錄下會生成以下四個文件:
CSS
樣式文件,用于設置組件的樣式
HTML
模板文件,用于設置組件的模板
TypeScript
文件,里面包含一個 GreatAngular
組件類和組件的元信息
Spec
文件,包含組件相關的測試用例
GreatAngular
組件會被自動地添加到最近模塊 @NgModule
裝飾器的 declarations
屬性中。
2. 其他命令
Angualr CLI
提供了許多常用命令供我們選擇:
ng generate class my-new-class // 新建 class
ng generate component my-new-component // 新建組件
ng generate directive my-new-directive // 新建指令
ng generate enum my-new-enum // 新建枚舉
ng generate module my-new-module // 新建模塊
ng generate pipe my-new-pipe // 新建管道
ng generate service my-new-service // 新建服務
當然選擇。。簡寫:
ng g cl my-new-class // 新建 class
ng g c my-new-component // 新建組件
ng g d my-new-directive // 新建指令
ng g e my-new-enum // 新建枚舉
ng g m my-new-module // 新建模塊
ng g p my-new-pipe // 新建管道
ng g s my-new-service // 新建服務
3. 單元測試
Angular
默認幫我們集成了``karma`測試框架,我們只需要:
$ ng test
4. 端到端測試
$ ng e2e
關于Angular
測試部分詳細可以參考官方文檔。
5. 構建應用程序
$ ng built
其中過程應該是這樣的:
Angular CLI
從 .angular-cli.json
文件中加載配置信息
Angular CLI
運行 Webpack
打包項目相關的 JavaScript
、 CSS
等文件
打包后的資源,將被輸出到配置文件中 outDir
所指定的目錄,默認是輸出到 dist
目錄。
這只是一個初級的文檔,強烈建議請參考Angular CLI 終極指南