Get Started

Install

Angular CLI β€” это Π΄ΠΎΠΏ ΠΏΠ°ΠΊΠ΅Ρ‚, слуТащий для ΠΊΠΎΠΌΡ„ΠΎΡ€Ρ‚Π½ΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π° Angular. УстанавливаСм Angular CLI:

$ npm install -g @angular/cli

Если ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² VS Code, ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Angular Language Service.

Usage

Create Project

$ ng new my-app

Run app (Ρ„Π»Π°Π³ open сразу ΠΎΡ‚ΠΊΡ€ΠΎΠ΅Ρ‚ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€)

$ cd my-app
$ ng serve --open

File Structure

Workspace

Π€Π°ΠΉΠ»

НазначСниС

.editorconfig

БистСмный Ρ„Π°ΠΉΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит настройки для Ρ€Π°Π·Π½Ρ‹Ρ… Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ²

.gitignore

Π€Π°ΠΉΠ»Ρ‹ ΠΈ ΠΏΠ°ΠΏΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒΡΡ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ

README.md

angular.json

ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Angular прилоТСния

package.json

Бписок зависимостСй + Π½Π°Π±ΠΎΡ€ скриптов для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ запуска нашСго прилоТСния

package-lock.json

ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ слуТит для Π±ΠΎΠ»Π΅Π΅ эффСктивной Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π²Π΅Ρ€ΡΠΈΠΎΠ½Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ²

e2e/

Код для end-to-end тСстированиия (с protractor)

src/

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ прилоТСния

node_modules/

Зависимости прилоТСния (Π½Π°Π±ΠΎΡ€ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ)

tsconfig.json

tslint.json

karma.conf.js

ΠΊΠΎΠ½Ρ„ΠΈΠ³ для karma β€” инструмСнта для написания ΠΈ запуска Unit-тСстов

browserslist

ВрСбования ΠΊ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°ΠΌ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΄ΠΎΠ»ΠΆΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

angular.json

sourceRoot β€” ΠΏΡƒΡ‚ΡŒ Π΄ΠΎ ΠΏΠ°ΠΏΠΊΠΈ с исходны ΠΊΠΎΠ΄ΠΎΠΌ

options/prefix β€” прСфикс для ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, prefix = app => app-root)

options/tsConfig β€” ΠΏΡƒΡ‚ΡŒ Π΄ΠΎ tsconfig-Ρ„Π°ΠΉΠ»Π°

options/styles β€” ΠΏΡƒΡ‚ΡŒ Π΄ΠΎ стилСй (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, сюда Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ Materialize, Bootstrap, ..)

configurations/production/fileReplacements β€” замСняСт ΠΊΠΎΠ½Ρ„ΠΈΠ³ Π² зависимости ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° сборки (dev, prod, ..)

Π’Π°ΠΊ ΠΆΠ΅ содСрТит настройки ΠΏΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ, e2e, lint, tests, ...

package.json

ΠŸΡ€ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ (ΠΎΠ±ΡŠΡΠ²Π»ΡΡŽΡ‚ΡΡ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³Π΅):

start (npm start) β€” собираСт ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ

build (npm build) β€” собираСт ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ production (ΠΌΠΎΠΆΠ½ΠΎ Π΅Ρ‰Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ„Π»Π°Π³, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Π»Π° максимальная оптимизация: ng build --prod)

src/

index.html β€” содСрТит элСмСнт app-root

main.ts β€” Ρ‚ΠΎΡ‡ΠΊΠ° Π²Ρ…ΠΎΠ΄Π° прилоТСния, ВсС начинаСтся с запуска ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ модуля:

import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';

import { AppModule } from './app/app.module';

...
platformBrowserDynamic().bootstrapModule(AppModule)
...

polyfills.ts β€” Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ JS-ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡƒΡ‰Π΅Π½ Ρ€Π°Π½ΡŒΡˆΠ΅ нашСго прилоТСния. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Π΄ΠΎΠΏ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π² Ρ€Π°Π·Π½Ρ‹Ρ… Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°Ρ….

app/ β€” ΠΏΠΎ-Ρ„Π°ΠΊΡ‚Ρƒ Ρ…Ρ€Π°Π½ΠΈΡ‚ ΠΊΠΎΠ΄ нашСго модуля-прилоТСния. (app β€” это ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ "ΠΌΠΎΠ΄ΡƒΠ»ΡŒ", app.component β€” это ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ "ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚").

ΠŸΡ€ΠΎ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ² Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅:

<НазваниС элСмСнта>.<Π’ΠΈΠΏ элСмСнта>[.spec.].<Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅>

app.component.html
app.module.ts
something.component.spec.ts

ВсС начинаСтся с модуля (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, app.module.ts), Π³Π΄Π΅ ΠΌΡ‹ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π² массив imports, рСгистрируСм ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π² declarations:

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';

import { AppComponent } from './app.component';

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

Last updated