CLI 快速起步
使用 CLI 工具快速構(gòu)建 Angular 應(yīng)用伞广。
相比手動(dòng)的做一切事情,好的工具使應(yīng)用開發(fā)更快减拭、更易于維護(hù)区丑。
Angular-CLI 是一個(gè)命令行工具沧侥,使用它可以創(chuàng)建項(xiàng)目宴杀、添加文件,并執(zhí)行各種開發(fā)中的任務(wù)旷余,例如——測(cè)試正卧、打包跪解、部署惠遏。
在本節(jié)节吮,我們的目標(biāo)是使用 Angular-CLI 并遵循風(fēng)格指南的推薦,構(gòu)建和運(yùn)行一個(gè)超級(jí)簡(jiǎn)單的 Typescript版的 Angular 應(yīng)用翘骂,這將有益于每一個(gè) Angular 項(xiàng)目碳竟。
本章結(jié)束后,我們會(huì)通過CLI對(duì)開發(fā)過程有一個(gè)最基本的理解莹桅,并將其作為其它文檔范例以及真實(shí)應(yīng)用的基礎(chǔ)诈泼。
要完成目標(biāo),包含下面幾個(gè)主要的步驟:
- 配置開發(fā)環(huán)境
- 新建項(xiàng)目及應(yīng)用的骨架
- 啟動(dòng)應(yīng)用服務(wù)器
- 編輯應(yīng)用
第一步:配置開發(fā)環(huán)境
在你做任何事之前岖赋,需要配置我們的開發(fā)環(huán)境唐断。
安裝 Node.js 和 npm(假如你的電腦還沒有安裝)脸甘。
通過在命終端/命令行運(yùn)行
node -v
和npm -v
確保你運(yùn)行的版本 node 最低4.x.x
斤程,npm 最低3.x.x
。舊版本會(huì)產(chǎn)生錯(cuò)誤,但新版本不會(huì)沮峡。
全局安裝 Angular-CLI:
npm i -g @angular/cli
第二步:新建項(xiàng)目
打開終端窗口邢疙。
通過運(yùn)行下面的命令生成新的項(xiàng)目和應(yīng)用的骨架:
ng new my-app
請(qǐng)耐心等待疟游。它需要時(shí)間來配置新項(xiàng)目痕支,大多數(shù)時(shí)間用來安裝 npm 包卧须。
第三步:?jiǎn)?dòng)應(yīng)用服務(wù)器
進(jìn)入項(xiàng)目目錄并啟動(dòng)服務(wù)器花嘶。
cd my-app
ng serve
ng serve
命令啟動(dòng)服務(wù)器,并監(jiān)視文件车海,當(dāng)文件發(fā)生改變后重新構(gòu)建應(yīng)用侍芝。
打開瀏覽器,輸入http://localhost:4200/
蚜印,顯示歡迎信息:app works!
窄赋。
第四步:編輯我們的第一個(gè) Angular 組件
CLI 為我們創(chuàng)建第一個(gè) Angular 組件楼熄。這就是命名為app-root
的根組件可岂。你可以在./src/app/app.component.ts
中找到它。
打開組件文件修改title
屬性稚茅,從app works!
改為My First Angular App
:
export class AppComponent {
title = 'My First Angular App';
}
瀏覽器自動(dòng)刷新亚享,我們會(huì)看到修改后的標(biāo)題绘面。這很好揭璃,但我們可以讓它變得更好看一點(diǎn)。
打開src/app/cli-quickstart.component.css
歼秽,給我們的組件設(shè)置些樣式哲银。
h1 {
color: #369;
font-family: Arial, Helvetica, sans-serif;
font-size: 250%;
}
接下來做什么荆责?
如你所愿做院,我們完成了這個(gè)“Hello, World”應(yīng)用键耕。
現(xiàn)在,你可以開始英雄之旅教程村视,通過構(gòu)建一個(gè)小型應(yīng)用來學(xué)習(xí)如何用 Angular 構(gòu)建各種大型應(yīng)用了蚁孔。
或者杠氢,你也可以稍等一會(huì)兒鼻百,學(xué)學(xué)在這個(gè)新項(xiàng)目中的文件都是干什么用的温艇。
項(xiàng)目文件概覽
Angular-CLI 項(xiàng)目是快速構(gòu)建實(shí)驗(yàn)和企業(yè)解決方案的基礎(chǔ)中贝。
我們查看的第一個(gè)文件應(yīng)該是README.md
臼朗。它有一些如何使用 CLI 命令的基礎(chǔ)信息。無論何時(shí)你想要知道更多的關(guān)于 Angu-CLI 如何工作的信息誊涯,一定要訪問Angular-CLI倉庫和Wiki暴构。
有些生成的文件可能你并不熟悉取逾,接下來我們就講講它們。
src 目錄
你的應(yīng)用存放在src
目錄下误阻。所有的 Angular 組件究反、模板、樣式狼速、圖片以及你的應(yīng)用需要的任何東西都在這里。這個(gè)目錄之外的任何文件都是為了支持構(gòu)建你的應(yīng)用捷枯。
src/
|__app/
| |__app.component.css
| |__app.component.html
| |__app.component.spec.ts
| |__app.component.ts
| |__app.module.ts
|__assets/
| |__.gitkeep
|__environments/
| |__environment.prod.ts
| |__environment.ts
|__favicon.ico
|__index.html
|__main.ts
|__polyfills.ts
|__styles.css
|__test.ts
|__tsconfig.json
文件 | 用途 |
---|---|
app/app.component.{ts,html,css,spec.ts} |
定義了AppComponent 相關(guān)的HTML模板淮捆、css樣式和單元測(cè)試攀痊。隨著應(yīng)用程序的進(jìn)化拄显,它將成為嵌套組件樹的根組件苟径。 |
app/app.module.ts |
定義AppModule ,根模塊告訴Angular如何配置應(yīng)用程序」螅現(xiàn)在它只聲明了AppComponent 棘街。之后會(huì)有更多的組件聲明。 |
assets/* |
一個(gè)可以存放圖片和任何你需要的東西的目錄承边,在構(gòu)建應(yīng)用時(shí)遭殉,它們?nèi)繒?huì)復(fù)制到發(fā)布的包中。 |
environments/* |
這個(gè)目錄包含為每個(gè)目標(biāo)環(huán)境準(zhǔn)備的配置文件博助,它們導(dǎo)出了一些應(yīng)用中要用到的配置變量险污。 當(dāng)你構(gòu)建應(yīng)用時(shí),文件會(huì)被動(dòng)態(tài)的替換富岳。你可能在開發(fā)時(shí)使用與生產(chǎn)時(shí)不同的后端API。或使用不同的統(tǒng)計(jì)Token參數(shù)狼电。甚至使用一些模擬服務(wù)。所有這些削祈,CLI都替你考慮到了优幸。 |
favicon.ico |
每個(gè)網(wǎng)站都想在書簽欄看起來好看。請(qǐng)把它換成你自己的圖標(biāo)。 |
index.html |
這是別人訪問你的網(wǎng)站是看到的主頁面的HTML文件馍资。大多數(shù)時(shí)候你永遠(yuǎn)也不需要編輯它戏锹。當(dāng)構(gòu)建應(yīng)用時(shí)荠察,CLI會(huì)自動(dòng)地添加所有的 js 和css 文件,所以你從來都不需要在這里手動(dòng)的添加任何的<script> 或<link> 標(biāo)簽 |
main.ts |
應(yīng)用的主入口。使用JIT編譯器編譯應(yīng)用并啟動(dòng)應(yīng)用在瀏覽器中運(yùn)行。你也可以通過給ng build 或ng serve 傳入--aot 參數(shù)崇堰,而不需要改變?nèi)魏未a來使用AoT編譯器檩互。 |
polyfills.ts |
不同的瀏覽器對(duì)web標(biāo)準(zhǔn)的支持程度也不同。Polyfills能幫我們把這些不同點(diǎn)進(jìn)行標(biāo)準(zhǔn)化溉跃。你可以非常安全的使用core-js 和zone.js 龄糊,但是一定要查看瀏覽器支持以了解更多的信息阿浓。 |
style.css |
你的全局樣式在這里。大多數(shù)時(shí)候你會(huì)希望在你的組件中使用局部樣式以易于維護(hù),但影響整個(gè)應(yīng)用的樣式需要集中放在這里翰铡。 |
test.ts |
這是單元測(cè)試的主入口赂毯。它有一些你可能不熟悉的自定義的配置巡社,但你不需要去編輯朝群。 |
tsconfig.json |
Typescript編譯器的配置文件 |
根目錄
src/
目錄僅僅是項(xiàng)目根目錄之一右莱。其它文件用來幫助你構(gòu)建、測(cè)試、維護(hù)、文檔和部署應(yīng)用轴咱。
它們?cè)诟夸浵潞?code>src/目錄平級(jí)坚洽。
my-app
|__e2e/
| |__app.e2e-spec.ts
| |__app.po.ts
| |__tsconfig.json
|__node_modules/...
|__src/...
|__.editorconfig
|__.gitignore
|__angular-cli.json
|__karma.conf.js
|__package.json
|__protractor.conf.js
|__README.md
|__tslint.json
文件 | 用途 |
---|---|
e2e/* |
e2e/ 中存放著端到端測(cè)試肋乍。它們不在src/ 里帝雇,是因?yàn)槎说蕉藴y(cè)試實(shí)際上和應(yīng)用是相互獨(dú)立的,它只適用于測(cè)試你的應(yīng)用而已恼除。這也是為什么它會(huì)擁有自己的tsconfig.json 气破。 |
node_modules/... |
Node.js 創(chuàng)建這個(gè)目錄并把package.json 中所列出的第三方模塊放到里面碳锈。 |
.editorconfig |
給你的編輯器看的一個(gè)簡(jiǎn)單配置文件间景,它用來確保參與你項(xiàng)目的每個(gè)人都具有基本的編輯器配置父晶。大多數(shù)編輯器都支持.editorconfig 文件埠胖,查看 http://editorconfig.org 獲取更多信息。 |
.gitignore |
git的配置文件零聚,用來確保自動(dòng)生成的文件不被提交到源碼控制系統(tǒng)中颂龙。 |
angular-cli.json |
Angular-CLI的配置让蕾。在這個(gè)文件中你可以設(shè)置一系列默認(rèn)值,還可以配置當(dāng)項(xiàng)目構(gòu)建時(shí)所包含的文件。如果你想了解更多,查看官方文檔。 |
karma.conf.js |
Karma運(yùn)行時(shí)的單元測(cè)試配置奄容,當(dāng)運(yùn)行ng test 時(shí)使用舟铜。 |
package.json |
你的項(xiàng)目使用的第三方包的npm 配置清單痊夭。你也可以在這里添加你自己的自定義腳本她我。 |
protractor.conf.js |
給Protractor使用的端到端測(cè)試配置文件,當(dāng)運(yùn)行ng e2e 的時(shí)候會(huì)用到它刃宵。 |
`README.md | 你項(xiàng)目的基本文檔等太,預(yù)先寫入了 CLI 的命令信息。別忘了用項(xiàng)目文檔改進(jìn)它泼差,以便每個(gè)查看此倉庫的人都能據(jù)此構(gòu)建出你的應(yīng)用竿音。 |
tslint.json |
TSlint連同Codelyzer的配置,當(dāng)運(yùn)行ng lint 時(shí)使用拴驮。 Lint功能可以幫你保持代碼風(fēng)格的統(tǒng)一。 |
下一步
如果你是Angular新手柴信,我們推薦繼續(xù)學(xué)習(xí)路徑套啤。
你可以跳過“環(huán)境配置”這一章,因?yàn)槟阋呀?jīng)在使用 Angular-CLI 配置好了環(huán)境随常。