本文轉自:https://www.jianshu.com/p/327d88284abb
一、 背景介紹:
兩個概念:
- 關於
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.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 終極指南
7. 參考文獻