AngularJS 1.x是Angular的上一代框架,
Angular團(tuán)隊(duì)做了規(guī)范,老框架為AngularJS 1.x,新框架統(tǒng)稱為Angular,
Angular使用了TypeScript進(jìn)行開發(fā),與AngularJS 1.x不兼容,而且采用了語義化的版本號(hào),以后是向下兼容的。
1. 安裝Angular
(1)全局安裝Angular CLI
npm install -g @angular/cli
(2)創(chuàng)建樣板工程
ng new my-app
(3)打開服務(wù)
cd my-app
ng serve --open
ng serve會(huì)打開服務(wù),監(jiān)控文件的變更,并自動(dòng)重新構(gòu)建,
--open選項(xiàng)(或簡(jiǎn)寫為-o),會(huì)自動(dòng)打開瀏覽器,并訪問http://localhost:4200/。
注:
執(zhí)行ng serve --open的時(shí)候可能會(huì)報(bào)錯(cuò),
getaddrinfo ENOTFOUND localhost
Error: getaddrinfo ENOTFOUND localhost
at errnoException (dns.js:50:10)
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:92:26)
可以通過iHosts綁定域名localhost到本機(jī)IP來解決,
127.0.0.1 localhost
2. 應(yīng)用目錄
2.1 構(gòu)建產(chǎn)品代碼
Angular應(yīng)用位于src文件夾中,我們可以使用如下命令進(jìn)行構(gòu)建,
ng build --env=prod
它將生成產(chǎn)品代碼到./dist目錄中,訪問http://localhost:4200/dist/index.html可以進(jìn)行查看。
2.2 目錄結(jié)構(gòu)
src
├── app
│ ├── app.component.css
│ ├── app.component.html
│ ├── app.component.spec.ts
│ ├── app.component.ts
│ └── app.module.ts
├── assets
├── environments
│ ├── environment.prod.ts
│ └── environment.ts
├── favicon.ico
├── index.html
├── main.ts
├── polyfills.ts
├── styles.css
├── test.ts
├── tsconfig.app.json
├── tsconfig.spec.json
└── typings.d.ts
2.3 文件介紹
(1)index.html
index.html是首頁,CLI工具會(huì)自動(dòng)添加js和css文件進(jìn)去,
所以并沒有包含<script>和<link>標(biāo)簽,而是直接包含了一個(gè)html5自定義標(biāo)簽<app-root></app-root>。
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>MyApp</title>
<base href="/">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="icon" type="image/x-icon" href="favicon.ico">
</head>
<body>
<app-root></app-root>
</body>
</html>
(2)main.ts
main.ts是應(yīng)用的入口,
import { enableProdMode } from '@angular/core';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app/app.module';
import { environment } from './environments/environment';
if (environment.production) {
enableProdMode();
}
platformBrowserDynamic().bootstrapModule(AppModule);
它根據(jù)environments/environment.ts中的配置,來切換開發(fā)環(huán)境和生產(chǎn)環(huán)境,
AppModule是當(dāng)前的應(yīng)用模塊,由app/app.module.ts中導(dǎo)出。
(3)app/app.module.ts
app/app.module.ts文件中使用AppComponent注冊(cè)了AppModule模塊,
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
其中,AppComponent由app/app.component.ts導(dǎo)出,
@NgModule是AppModule類的裝飾器。
(4)app/app.component.ts
app/app.component.ts創(chuàng)建了<app-root>組件,指定了它的模板和樣式,
import { Component } from '@angular/core';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
title = 'app';
}
其中,@Component是AppComponent類的裝飾器。
參考
Angular - QuickStart
build modulesError: getaddrinfo ENOTFOUND localhost