AngularJS 1.x是Angular的上一代框架,
Angular团队做了规范,老框架为AngularJS 1.x,新框架统称为Angular,
Angular使用了TypeScript进行开发,与AngularJS 1.x不兼容,而且采用了语义化的版本号,以后是向下兼容的。
1. 安装Angular
(1)全局安装Angular CLI
npm install -g @angular/cli
(2)创建样板工程
ng new my-app
(3)打开服务
cd my-app
ng serve --open
ng serve
会打开服务,监控文件的变更,并自动重新构建,
--open
选项(或简写为-o
),会自动打开浏览器,并访问http://localhost:4200/
。
注:
执行ng serve --open
的时候可能会报错,
getaddrinfo ENOTFOUND localhost
Error: getaddrinfo ENOTFOUND localhost
at errnoException (dns.js:50:10)
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:92:26)
可以通过iHosts绑定域名localhost
到本机IP来解决,
127.0.0.1 localhost
2. 应用目录
2.1 构建产品代码
Angular应用位于src
文件夹中,我们可以使用如下命令进行构建,
ng build --env=prod
它将生成产品代码到./dist
目录中,访问http://localhost:4200/dist/index.html
可以进行查看。
2.2 目录结构
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工具会自动添加js和css文件进去,
所以并没有包含<script>
和<link>
标签,而是直接包含了一个html5自定义标签<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
是应用的入口,
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);
它根据environments/environment.ts
中的配置,来切换开发环境和生产环境,
AppModule
是当前的应用模块,由app/app.module.ts
中导出。
(3)app/app.module.ts
app/app.module.ts
文件中使用AppComponent
注册了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
导出,
@NgModule
是AppModule
类的装饰器。
(4)app/app.component.ts
app/app.component.ts
创建了<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