配置文件介绍及应用启动流程
一、项目目录

二、配置文件介绍
| File 文件 | 
Purpose 用途 | 
| favicon.ico | 
网站在书签栏显示的图标 | 
| index.html | 
这是别人访问你的网站是看到的主页面的HTML文件。 大多数情况下你都不用编辑它。 | 
| main.ts | 
这是应用的主要入口点。启动根模块AppModule,使其运行在浏览器中。 | 
| polyfills.ts | 
不同的浏览器对Web标准的支持程度也不同。 填充库(polyfill)能帮我们把这些不同点进行标准化。 | 
| styles.css | 
全局样式。 | 
| test.ts | 
这是单元测试的主要入口点。 | 
| tsconfig.app.json,tsconfig.spec.json | 
TypeScript编译器的配置文件。tsconfig.app.json是为Angular应用准备的,而tsconfig.spec.json是为单元测试准备的。 | 
| .angular-cli.json | 
Angular CLI的配置文件。 在这个文件中,我们可以设置一系列默认值,还可以配置项目编译时要包含的那些文件。 | 
| .editorconfig | 
给你的编辑器看的一个简单配置文件,它用来确保参与你项目的每个人都具有基本的编辑器配置。 | 
| .gitignore | 
一个Git的配置文件,用来确保某些自动生成的文件不会被提交到源码控制系统中。 | 
| karma.conf.js | 
给Karma的单元测试配置,当运行ng test时会用到它。 | 
| package.json | 
npm配置文件,其中列出了项目使用到的第三方依赖包。 | 
| protractor.conf.js | 
给Protractor使用的端到端测试配置文件。 | 
| tsconfig.json | 
TypeScript编译器的配置 | 
| tslint.json | 
给TSLint和Codelyzer用的配置信息,当运行ng lint时会用到。 Lint功能可以帮你保持代码风格的统一。 | 
三、应用启动流程
- angular-cli.json
    ng serve      ==>      命令会去angular-cli.json中查找进入app的入口      ==>      找到关键字main对应的文件“main.ts”。 
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26  |  "apps": [
    {
      "root": "src",
      "outDir": "dist",
      "assets": [
        "assets",
        "favicon.ico"
      ],
      "index": "index.html",
      "main": "main.ts",
      "polyfills": "polyfills.ts",
      "test": "test.ts",
      "tsconfig": "tsconfig.app.json",
      "testTsconfig": "tsconfig.spec.json",
      "prefix": "app",
      "styles": [
        "styles.css"
      ],
      "scripts": [],
      "environmentSource": "environments/environment.ts",
      "environments": {
        "dev": "environments/environment.ts",
        "prod": "environments/environment.prod.ts"
      }
    }
]
 
 | 
- main.ts
    启动程序会根据main.ts中的内容启动一个app.module的模块
 
 |     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)
     .catch(err => console.log(err));
 
 | 
- app.module.ts
    app.module.ts 中定义模块中具体的组件,AppComponent组件
 
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15  |       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 { }
 
 | 
- 页面展示
    别人访问网页时,angular-cli.json中找到index的藐视,index.html
 
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14  |      <!doctype html>
     <html lang="en">
     <head>
      <meta charset="utf-8">
      <title>DemoHelloworld</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>
 
 | 
根据找到appComponenet组件进行页面展示
 |        import { Component } from '@angular/core';
       @Component({
             selector: 'app-root',
             templateUrl: './app.component.html',
             styleUrls: ['./app.component.css']
       })
       export class AppComponent {
          title = 'app';
       }
 
 |