前言
這個系列的進度有些跳躍性,我儘量直白點解釋,但是我不是官方文件,直入主題!!!!
什麼是Angular-cli
簡言之:就是NG團隊自行維護的一個`腳手架`[內建單元測試及webpack2打包工具等] -- 這貨前身是ember-cli
;
官網:cli.angular.io/
Github: github.com/angular/ang…
npm: www.npmjs.com/package/ang…
我最早是從beta18開始用的,截止beta28.3 — 這個分支已經廢棄,已經遷移,之前npm install angular-cli
不推薦;
目前最新的是v1.0.0正式版
【2017-3-24】;從舊版本到rc期間坑了太多次,每次升級各種酸爽;
rc2開始基本變化不大,可以直接拿來用了。。
正式版的配置稍微有些改動,我比較了下基本不大,放心使用
安裝之前
- window下:
- 安裝
lts
版本的nodejs[6.10.0] , Angular-cli中的node-sass
不支援7.x,裝不上的 - 裝了visual studio 2015+及python2+ [node-sass及部分模組需要呼叫這兩個依賴進行編譯]
- 或者採用國內的cnpm安裝,記得帶版本號,有時候不帶版本會安裝
0.0.1
版本,cnpm好像會把編譯好node-sass裝上,不用本地再次編譯 — 親測多次可用 - 或者安裝
windows-build-tools
:windows下的依賴庫,再執行官方安裝命令
- 安裝
-
Linux下:
- nodejs控制推薦用
nvm
來管理 :github.com/creationix/…- 先下載
nvm
的指令碼,用curl
或者wget
都行,前者有些不預裝,後者基本都有wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.1/install.sh | bash
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.1/install.sh | bash
- 記得重新讀取bash的配置檔案,因為指令碼沒法實時生效,用linux的
source
命令一下子就搞定了source ~/.bashrc
: 意思就是重新載入當前使用者的bash配置檔案
nvm
的命令不多,仔細看看文件哈,我們這裡只需要穩定版本(lts)nvm install --lts
: 之後node怎麼用就怎麼用哈
- 先下載
-
其次,linux下推薦用
yarn
替代npm
,使用起來體驗好很多,速度也快很多# 下載公鑰 curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - # 把源寫進去源請求列表 echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list # 我用的是deepin !!!! 支援一下國產,挺好用哈~~~~ sudo apt-get update && sudo apt-get install yarn複製程式碼
- nodejs控制推薦用
開發工具這些就不扯了,我選擇VSCODE
安裝
npm install -g @angular/cli
— 無壓力過牆的孩子推薦
或者cnpm install -g @angular/cli@v1.0.0-rc.2
— 國內淘寶源(cnpm的安裝自行搜尋)
或者yarn add global @angular/cli
— 看網路了。。。
初始化專案
angular-cli可以初始化ng2或者ng4的專案,我這裡說2+;
腳手架的命令很多,我這裡只列出最常用的;
- 新建東東
範圍 | 命令 | 作用 |
---|---|---|
new | ng new new_project | 初始化新專案 |
Component | ng g component my-new-component | 新建一個元件 |
Directive | ng g directive my-new-directive | 新建一個指令 |
Pipe | ng g pipe my-new-pipe | 新建一個管道 |
Service | ng g service my-new-service | 新建一個服務 |
Class | ng g class my-new-class | 新建一個類 |
Interface | ng g interface my-new-interface | 新建一個介面 |
Enum | ng g enum my-new-enum | 新建一個列舉 |
Module | ng g module my-module | 新建一個模組 |
- 測試及檢測
範圍 | 命令 | 作用 |
---|---|---|
e2e | ng e2e | 跑自動化測試-自己寫測試測試用例 |
test | ng test | 跑單元測試 — 自己寫 |
lint | ng lint | 呼叫tslint跑整個專案,可以收穫一堆警告和錯誤,–force –fix –format可以幫助格式和修復部分問題 |
- 啟動
ng serve
: 啟動腳手架服務,預設埠4200;自定義什麼看幫助額
- 打包
ng build
: 開發模式打包,呼叫的環境檔案是/src/environments/environments.ts
;ng build --prod
: 以前呼叫aot打包還需要帶上--aot
,從beta31開始,--prod
模式下自動呼叫aot打包,
呼叫的環境檔案是/src/environments/environments.prod.ts
- 彈出配置檔案(還原真實的配置檔案)
ng eject
: 這個東西的配置很多,可以彈出各種各樣的源配置和檔案
我們看到的ng
開頭的命令都是二重封裝的。。。有時候我們想要改原始檔或者看到原始配置是怎麼樣的這貨就用到了
生成的目錄樹小解釋
總結
- 這個腳手架支援sass和less,手動改下
.angular-cli.json
就可以了。或者執行命令改下支援,,一個道理的 - 當然可以配置介面反向代理,但是我感覺不實用,推薦還是把不同介面的url寫在不同的environment裡面,用
nginx
做反向代理!ng serve --proxy-config proxy.conf.json
配置反向代理(用webpack)這個老版本是支援的,現在不知道支不支援,寫法如下
{
"/": {
"target": "http://localhost:3000",
"secure": false
}
}複製程式碼
- ng2+寫起來很清晰,各種注入~~歡迎品嚐。。。