angular文檔——CLI-快速起步

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è)主要的步驟:

  1. 配置開發(fā)環(huán)境
  2. 新建項(xiàng)目及應(yīng)用的骨架
  3. 啟動(dòng)應(yīng)用服務(wù)器
  4. 編輯應(yīng)用

第一步:配置開發(fā)環(huán)境

在你做任何事之前岖赋,需要配置我們的開發(fā)環(huán)境唐断。

安裝 Node.js 和 npm(假如你的電腦還沒有安裝)脸甘。

通過在命終端/命令行運(yùn)行node -vnpm -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)地添加所有的 jscss文件,所以你從來都不需要在這里手動(dòng)的添加任何的<script><link>標(biāo)簽
main.ts 應(yīng)用的主入口。使用JIT編譯器編譯應(yīng)用并啟動(dòng)應(yīng)用在瀏覽器中運(yùn)行。你也可以通過給ng buildng 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-jszone.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)境随常。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末潜沦,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子绪氛,更是在濱河造成了極大的恐慌唆鸡,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,968評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件枣察,死亡現(xiàn)場(chǎng)離奇詭異争占,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)序目,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門臂痕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人猿涨,你說我怎么就攤上這事握童。” “怎么了叛赚?”我有些...
    開封第一講書人閱讀 153,220評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵澡绩,是天一觀的道長。 經(jīng)常有香客問我俺附,道長肥卡,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,416評(píng)論 1 279
  • 正文 為了忘掉前任昙读,我火速辦了婚禮召调,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己唠叛,他們只是感情好只嚣,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評(píng)論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著艺沼,像睡著了一般册舞。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上障般,一...
    開封第一講書人閱讀 49,144評(píng)論 1 285
  • 那天调鲸,我揣著相機(jī)與錄音,去河邊找鬼挽荡。 笑死藐石,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的定拟。 我是一名探鬼主播于微,決...
    沈念sama閱讀 38,432評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼青自!你這毒婦竟也來了株依?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,088評(píng)論 0 261
  • 序言:老撾萬榮一對(duì)情侶失蹤延窜,失蹤者是張志新(化名)和其女友劉穎恋腕,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體逆瑞,經(jīng)...
    沈念sama閱讀 43,586評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡荠藤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了获高。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片商源。...
    茶點(diǎn)故事閱讀 38,137評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖谋减,靈堂內(nèi)的尸體忽然破棺而出牡彻,到底是詐尸還是另有隱情,我是刑警寧澤出爹,帶...
    沈念sama閱讀 33,783評(píng)論 4 324
  • 正文 年R本政府宣布庄吼,位于F島的核電站,受9級(jí)特大地震影響严就,放射性物質(zhì)發(fā)生泄漏总寻。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評(píng)論 3 307
  • 文/蒙蒙 一梢为、第九天 我趴在偏房一處隱蔽的房頂上張望渐行。 院中可真熱鬧轰坊,春花似錦、人聲如沸祟印。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蕴忆。三九已至颤芬,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間套鹅,已是汗流浹背站蝠。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評(píng)論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留卓鹿,地道東北人菱魔。 一個(gè)月前我還...
    沈念sama閱讀 45,595評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像吟孙,于是被迫代替她去往敵國和親豌习。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • Angular CLI 是什么拔疚? Angular CLI 是一個(gè)命令行接口(Command Line Interf...
    semlinker閱讀 4,173評(píng)論 0 39
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,522評(píng)論 25 707
  • 仿制Reddit網(wǎng)站 讀完本章之后, 你將掌握如何構(gòu)建基本的Angular應(yīng)用既荚。 簡(jiǎn)單的應(yīng)用將涵蓋Angular中...
    東東少將閱讀 3,250評(píng)論 1 28
  • 有一種男人,他希望你給他家的樣子晴叨,可他卻忘了凿宾,他未曾給過她家。 男人總是聲稱女人要的太多兼蕊,怕自己一生都給不起初厚。真正...
    茉兒兒閱讀 159評(píng)論 0 0
  • 每次發(fā)完脾氣后我都特別懷念學(xué)生時(shí)代的自己,那時(shí)候傻里傻氣地大笑孙技,沒心沒肺地大哭产禾,相信知識(shí)可以改變命運(yùn),相信命運(yùn)掌握...
    Susan姍姍閱讀 247評(píng)論 4 3