Angular 5.0 學習2:Angular 5.0 開發環境的搭建和新建第一個ng5項目

1.安裝Node.js

在開始工作之前,我們必須設置好開發環境。
如果你的機器上還沒有Node.js?和npm,請先安裝它們。
去Node.js的官網,https://nodejs.org/en/,點擊下載按鈕,下載最新版本,直接下一步下一步安裝即可,軟件會自動寫入環境變量中,這樣就能直接在cmd命令窗口中直接使用node或npm(包管理工具)命令。

請先在終端/控制臺窗口中運行命令 node -v 和 npm -v, 來驗證一下你正在運行 node 6.9.x 和 npm 3.x.x 以上的版本。 更老的版本可能會出現錯誤,更新的版本則沒問題。

2.安裝cnpm(非必需操作)

npm的全稱是一個NodeJS包管理和分發工具,已經成為非官方的發布Node模塊(包)的標準。
由于npm安裝插件是從國外服務器下載,受網絡影響很大,可能出現異常,繼而淘寶團隊生產一個完整的npmjs.org鏡像,用cnpm代替npm,cnpm與nodejs的npm用法一致,只是在執行命令時,將npm改為cnpm。
在cmd命令窗口中輸入,然后回車

npm install cnpm -g --registry=https://registry.npm.taobao.org

安裝完畢時候輸入cnpm -v, 出現版本號即表示安裝成功。
如果你的網速夠快的話,安裝cnpm的的操作為非必需操作。筆者曾經使用cnpm下載一個ng5項目的依賴文件,在開發的時候沒有影響,但在使用ng build --prod時出錯,至今也不知道是什么問題。所以下面的操作都以npm為準。

3.安裝 Angular CLI

在cmd輸入下面的命令全局安裝 Angular CLI 。

npm install -g @angular/cli

之后輸入ng -v,出現版本號即安裝成功,Angular CLI的版本號在1.5以上,則新建出來的項目是Angular 5.0版本。
ng即為angular的簡稱。

4.安裝IDE

集成開發環境(IDE,Integrated Development Environment )是用于提供程序開發環境的應用程序,一般包括代碼編輯器、編譯器、調試器和圖形用戶界面等工具。集成了代碼編寫功能、分析功能、編譯功能、調試功能等一體化的開發軟件服務套。所有具備這一特性的軟件或者軟件套(組)都可以叫集成開發環境。
Angular IDE by Webclipse
intellij idea
Visual Studio Code
webstorm
請選擇一種自己喜歡和熟悉的IDE,這會提升你的工作效率。筆者的IDE是 webstorm。

5.創建新項目

打開終端窗口。

運行下列命令來生成一個新項目以及應用的骨架代碼:

ng new my-app

my-app是項目的名稱,可以隨意定義。

請耐心等待。 創建新項目需要花費很多時間,大多數時候都是在安裝那些npm包,大概是200多M左右。

進入項目目錄,并啟動服務器。

cd my-app
ng serve --open

ng serve命令會啟動開發服務器,監聽文件變化,并在修改這些文件時重新構建此應用。
使用--open(或-o)參數可以自動打開瀏覽器并訪問http://localhost:4200/。

本應用會用一條消息來跟你打招呼:
app-works.png

6.編輯我們的第一個Angular組件

這個CLI為我們創建了第一個Angular組件。 它就是名叫app-root的根組件。 你可以在./src/app/app.component.ts目錄下找到它。

打開這個組件文件,并且把title屬性從 Welcome to app!! 改為 Welcome to My First Angular App!! :

src/app/app.component.ts:

export class AppComponent {title = 'My First Angular App';
}

瀏覽器會自動刷新,而我們會看到修改之后的標題。不錯,不過它還可以更好看一點。

打開 src/app/app.component.css 并給這個組件設置一些樣式。

src/app/app.component.css:

h1 {color: #369;font-family: Arial, Helvetica, sans-serif;font-size: 250%;
}

my-first-app.png

編輯我們的第一個Angular組件成功!

7.項目文件概覽

Angular CLI項目是做快速試驗和開發企業解決方案的基礎。

你首先要看的文件是README.md。 它提供了一些如何使用CLI命令的基礎信息。

7.1 src文件夾

你的應用代碼位于src文件夾中。 所有的Angular組件、模板、樣式、圖片以及你的應用所需的任何東西都在那里。 這個文件夾之外的文件都是為構建應用提供支持用的。
圖片描述

app/app.component.{ts,html,css,spec.ts}
使用HTML模板、CSS樣式和單元測試定義AppComponent組件。 它是根組件,隨著應用的成長它會成為一棵組件樹的根節點。

app/app.module.ts
定義AppModule,這個根模塊會告訴Angular如何組裝該應用。 目前,它只聲明了AppComponent。 稍后它還會聲明更多組件。

assets/*
這個文件夾下你可以放圖片等任何東西,在構建應用時,它們全都會拷貝到發布包中。

environments/*
這個文件夾中包括為各個目標環境準備的文件,它們導出了一些應用中要用到的配置變量。 這些文件會在構建應用時被替換。 比如你可能在產品環境中使用不同的API端點地址,或使用不同的統計Token參數。 甚至使用一些模擬服務。 所有這些,CLI都替你考慮到了。

favicon.ico
每個網站都希望自己在書簽欄中能好看一點。 請把它換成你自己的圖標。

index.html
這是別人訪問你的網站是看到的主頁面的HTML文件。 大多數情況下你都不用編輯它。 在構建應用時,CLI會自動把所有js和css文件添加進去,所以你不必在這里手動添加任何 <script> 或 <link> 標簽。

main.ts
這是應用的主要入口點。 使用JIT compiler編譯器編譯本應用,并啟動應用的根模塊AppModule,使其運行在瀏覽器中。 你還可以使用AOT compiler編譯器,而不用修改任何代碼 —— 只要給ng build 或 ng serve 傳入 --aot 參數就可以了。

polyfills.ts
不同的瀏覽器對Web標準的支持程度也不同。 填充庫(polyfill)能幫我們把這些不同點進行標準化。 你只要使用core-js 和 zone.js通常就夠了,不過你也可以查看瀏覽器支持指南以了解更多信息。

styles.css
這里是你的全局樣式。 大多數情況下,你會希望在組件中使用局部樣式,以利于維護,不過那些會影響你整個應用的樣式你還是需要集中存放在這里。

test.ts
這是單元測試的主要入口點。 它有一些你不熟悉的自定義配置,不過你并不需要編輯這里的任何東西。

tsconfig.{app|spec}.json
TypeScript編譯器的配置文件。tsconfig.app.json是為Angular應用準備的,而tsconfig.spec.json是為單元測試準備的。

7.2 根目錄

src/文件夾是項目的根文件夾之一。 其它文件是用來幫助你構建、測試、維護、文檔化和發布應用的。它們放在根目錄下,和src/平級。
圖片描述

e2e/
在e2e/下是端到端(end-to-end)測試。 它們不在src/下,是因為端到端測試實際上和應用是相互獨立的,它只適用于測試你的應用而已。 這也就是為什么它會擁有自己的tsconfig.json。

node_modules/
Node.js創建了這個文件夾,并且把package.json中列舉的所有第三方模塊都放在其中。

.angular-cli.json
Angular CLI的配置文件。 在這個文件中,我們可以設置一系列默認值,還可以配置項目編譯時要包含的那些文件。 要了解更多,請參閱它的官方文檔。

.editorconfig
給你的編輯器看的一個簡單配置文件,它用來確保參與你項目的每個人都具有基本的編輯器配置。 大多數的編輯器都支持.editorconfig文件,詳情參見 http://editorconfig.org 。

.gitignore
一個Git的配置文件,用來確保某些自動生成的文件不會被提交到源碼控制系統中。

karma.conf.js
給Karma的單元測試配置,當運行ng test時會用到它。

package.json
npm配置文件,其中列出了項目使用到的第三方依賴包。 你還可以在這里添加自己的自定義腳本。

protractor.conf.js
給Protractor使用的端到端測試配置文件,當運行ng e2e的時候會用到它。

README.md
項目的基礎文檔,預先寫入了CLI命令的信息。 別忘了用項目文檔改進它,以便每個查看此倉庫的人都能據此構建出你的應用。

tsconfig.json
TypeScript編譯器的配置,你的IDE會借助它來給你提供更好的幫助。

tslint.json
給TSLint和Codelyzer用的配置信息,當運行ng lint時會用到。 Lint功能可以幫你保持代碼風格的統一。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/391477.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/391477.shtml
英文地址,請注明出處:http://en.pswp.cn/news/391477.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

leetcode 154. 尋找旋轉排序數組中的最小值 II(二分查找)

已知一個長度為 n 的數組&#xff0c;預先按照升序排列&#xff0c;經由 1 到 n 次 旋轉 后&#xff0c;得到輸入數組。例如&#xff0c;原數組 nums [0,1,4,4,5,6,7] 在變化后可能得到&#xff1a; 若旋轉 4 次&#xff0c;則可以得到 [4,5,6,7,0,1,4] 若旋轉 7 次&#xff0…

robot:根據條件主動判定用例失敗或者通過

場景&#xff1a; 當用例中的斷言部分需要滿足特定條件時才會執行&#xff0c;如果不滿足條件時&#xff0c;可以主動判定該用例為passed狀態&#xff0c;忽略下面的斷言語句。 如上圖場景&#xff0c;當每月1號時&#xff0c;表中才會生成上月數據&#xff0c;生成后數據不會再…

golang go語言_在7小時內學習快速簡單的Go編程語言(Golang)

golang go語言The Go programming language (also called Golang) was developed by Google to improve programming productivity. It has seen explosive growth in usage in recent years. In this free course from Micheal Van Sickle, you will learn how to use Go step…

使用MUI框架,模擬手機端的下拉刷新,上拉加載操作。

套用mui官方文檔的一句話&#xff1a;“開發者只需關心業務邏輯&#xff0c;實現加載更多數據即可”。真的是不錯的框架。 想更多的了解這個框架&#xff1a;http://dev.dcloud.net.cn/mui/ 那么如何實現下拉刷新&#xff0c;上拉加載的功能呢&#xff1f; 首先需要一個容器&am…

圖深度學習-第1部分

有關深層學習的FAU講義 (FAU LECTURE NOTES ON DEEP LEARNING) These are the lecture notes for FAU’s YouTube Lecture “Deep Learning”. This is a full transcript of the lecture video & matching slides. We hope, you enjoy this as much as the videos. Of cou…

Git上傳項目到github

2019獨角獸企業重金招聘Python工程師標準>>> Git入門 個人理解git就是一個上傳工具&#xff0c;同時兼具和svn一樣的版本控制功能&#xff08;此解釋純屬本人個人觀點&#xff09; Github是什么 github就是一個分布式版本管理系統&#xff08;反正我就是這么認為的…

ionic4 打包ios_學習Ionic 4并開始創建iOS / Android應用

ionic4 打包iosLearn how to use Ionic 4 in this full course for beginners from Awais Mirza. Ionic Framework is the free, open source mobile UI toolkit for developing high-quality cross-platform apps for native iOS, Android, and the web—all from a single Ja…

robot:當用例失敗時執行關鍵字(發送短信)

使用場景&#xff1a; 當用例失敗時需要通知對應人員&#xff0c;則需要在Teardown中&#xff0c;使用關鍵字Run Keyword If Test Failed Send Message關鍵字為自定義關鍵字&#xff0c;${content}為短信內容&#xff0c;${msg_receiver}為短信接收者列表。 當然執行成功時需要…

leetcode 263. 丑數

給你一個整數 n &#xff0c;請你判斷 n 是否為 丑數 。如果是&#xff0c;返回 true &#xff1b;否則&#xff0c;返回 false 。 丑數 就是只包含質因數 2、3 和/或 5 的正整數。 示例 1&#xff1a; 輸入&#xff1a;n 6 輸出&#xff1a;true 解釋&#xff1a;6 2 3 …

NTP同步

RedHat Linux NTP實施步驟1、 查看本系統與NTP服務器的時間偏差 ntpdate -d 192.168.142.114 [rootzabbix-proxy ~]# ntpdate -d 192.168.142.114 24 Aug 17:26:45 ntpdate[3355]: ntpdate 4.2.6p51.2349-o Fri Apr 13 12:52:28 UTC 2018 (1) Looking for host 192.168.142.…

項目經濟規模的估算方法_估算英國退歐的經濟影響

項目經濟規模的估算方法On June 23 2016, the United Kingdom narrowly voted in a country-wide referendum to leave the European Union (EU). Economists at the time warned of economic losses; the Bank of England produced estimates that that GDP could be as much …

Oracle宣布新的Java Champions

\看新聞很累&#xff1f;看技術新聞更累&#xff1f;試試下載InfoQ手機客戶端&#xff0c;每天上下班路上聽新聞&#xff0c;有趣還有料&#xff01;\\\Oracle宣布了2017年新接納的Java Champion的綜述。這次宣布了40位新的成員&#xff0c;包括InfoQ的貢獻者Monica Beckwith。…

lambda ::_您無法從這里到達那里:Netlify Lambda和Firebase如何使我陷入無服務器的死胡同

lambda ::[Update: Apparently you can get there from here! That is, if you use firebase-admin instead of google-cloud/firestore. Ill have more on this in the future, but the gist of it is summarized here.][ 更新&#xff1a;顯然您可以從這里到達那里&#xff…

leetcode 264. 丑數 II(堆)

給你一個整數 n &#xff0c;請你找出并返回第 n 個 丑數 。 丑數 就是只包含質因數 2、3 和/或 5 的正整數。 示例 1&#xff1a; 輸入&#xff1a;n 10 輸出&#xff1a;12 解釋&#xff1a;[1, 2, 3, 4, 5, 6, 8, 9, 10, 12] 是由前 10 個丑數組成的序列。 解題思路 維…

奇跡網站可視化排行榜]_外觀可視化奇跡

奇跡網站可視化排行榜]When reading a visualization is what we see really what we get?閱讀可視化內容時&#xff0c;我們真正看到的是什么&#xff1f; This post summarizes and accompanies our paper “Surfacing Visualization Mirages” that was presented at CHI …

Oracle自動性能統計

Oracle自動性能統計 高效診斷性能問題&#xff0c;需要提供完整可用的統計信息&#xff0c;好比醫生給病人看病的望聞問切&#xff0c;才能夠正確的確診&#xff0c;然后再開出相應的藥方。Oracle數據庫為系統、會話以及單獨的sql語句生成多種類型的累積統計信息。本文主要描述…

numpy2

1、通用函數&#xff0c;是一種在ndarray數據中進行逐元素操作的函數。某些函數接受一個或多個標量數值&#xff0c;并產生一個或多個標量結果&#xff0c;通用函數就是對這些函數的封裝。 1、常用的一元通用函數有&#xff1a;abs\fabs  sqrt   square  exp  log\log2…

Apache Prefork、Worker和Event三種MPM簡單分析

(1) Prefork MPM &#xff08;優點&#xff09; &#xff1a;使用多個子進程&#xff0c;每個子進程只有一個線程來處理一個 http 連接&#xff0c;不用擔心線程安全問題缺點&#xff1a;內存消耗大&#xff0c;不擅長處理高并發環境&#xff0c;使用keep-alive長連接時要等到超…

grasshopper_如何使用Google的Grasshopper編碼應用程序來學習手機上的編碼基礎知識...

grasshopper什么是蚱hopper&#xff1f; (What is Grasshopper?) Grasshopper is an interactive education app for learning about coding. It began at Google as an experimental project created by a group called Area 120. Grasshopper是一個用于學習編碼的交互式教育…

機器學習 量子_量子機器學習:神經網絡學習

機器學習 量子My last articles tackled Bayes nets on quantum computers (read it here!), and k-means clustering, our first steps into the weird and wonderful world of quantum machine learning.我的最后一篇文章討論了量子計算機上的貝葉斯網絡( 在這里閱讀&#xf…