Angular 17 változások:
Szükség van egy telepített Node.js-re npm paranccsal együtt. Ha ez megvan, akkor telepíthetjük az Angular parancssori eszközt.
Rendszergazdaként:
npm install -g @angular/cli@17.0.0
Telepítés után kapunk egy „ng” nevű parancsot. Ellenőrizzük a verziót.
Telepített angular/cli verziója:
ng version ng v
Útvonalba kell tenni:
c:\Users\user\AppData\Romaing\npm
Az útvonalbeállítás Windowson részletesebben:
Ellenőrzés:
ng version
Windowson PowerShellben be kell még állítani:
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned
npm i -g @angular/cli@16.2.11
npm i -g @angular/cli@16
ng config -g cli.packageManager pnpm
A következő helyen tárolódik:
A következőt kell találnunk:
{ "cli": { "packageManager": "pnpm" } }
Ettől kezdve az ng parancs a pnpm csomagkezelőt használja.
Új projekt készítése:
ng new projekt01
A program két kérdést tesz fel:
Kezdésként csak nyomjunk mindkettőre „Enter” billentyűt.
Ehhez hasonlót kell lássunk:
ng new hello ? Would you like to add Angular routing? (y/N) ? Which stylesheet format would you like to use? (Use arrow keys) ❯ CSS SCSS [ https://sass-lang.com/documentation/syntax#scss ] Sass [ https://sass-lang.com/documentation/syntax#the-indented-syntax ] Less [ http://lesscss.org
CREATE hello/README.md (1063 bytes) CREATE hello/.editorconfig (274 bytes) CREATE hello/.gitignore (604 bytes) CREATE hello/angular.json (3033 bytes) CREATE hello/package.json (1067 bytes) ...
Ha a projekt elkészült:
Successfully initialized git.
Ha létrejött a projekt, lépjünk be a projekt könyvtárába:
cd projekt01
Ha beléptünk a projekt01 könyvtárba indítsunk kódszerkesztőt.
Visual Studio Code esetén:
code .
ng serve --open
Az --open helyett használható a -o is használható.
Az alkalmazás a következő útvonalon lesz elérhető:
set-ExecutionPolicy RemoteSigned -Scope CurrentUser
Ellenőrzés:
Get-ExecutionPolicy -list
A struktúra nem teljes:
app01/ |-node_modules/ `-src/ |-app/ | |-app.components.css | |-app.component.html | |-app.component.spec.ts | |-app.components.ts | |-app.config.ts | |-app.routes.ts | `-assets/ |-index.html |-main.ts `-style.css
A projekt routing helye:
import { Routes } from '@angular/router'; export const routes: Routes = [];
Az app.component állományok az alkalmazás fő komponensének állományai. Ebből üres az app.component.css.
A komponens nézet része .html kiterjesztésű fájl. Ennek tartalma látszik alapértelmezett weblapként. Tartalma törölhető és újraírandó.
Ebben a fájlban nem szükséges fej és lábrészt írni a HTML oldal számára, mert az az index.html fájlban van megadva.
import { Component } from '@angular/core'; import { CommonModule } from '@angular/common'; import { RouterOutlet } from '@angular/router'; @Component({ selector: 'app-root', standalone: true, imports: [CommonModule, RouterOutlet], templateUrl: './app.component.html', styleUrl: './app.component.css' }) export class AppComponent { title = 'projekt01'; }
Az src/app/app.component.ts fájl az AppComponent osztálynak ad otthont. Egyetlen adattagja van title. Az állomány elején importáljuk a Component dekorátort, amit az osztály előtt használunk.
A Component dekorátorral mondjuk meg, hogy az AppComponent milyen szelektorral hivatkozható. A templateUrl megmondja, hogy a HTML sablon állomány neve app.component.html, a styleUrls, pedig tömb formájában tartalmazhat több stílusfájlt is.
A src/app/app.component.spec.ts állomány a komponenshez tartozó automatikusan generált teszteket tartalmazza.
import { TestBed } from '@angular/core/testing'; import { AppComponent } from './app.component'; describe('AppComponent', () => { beforeEach(async () => { await TestBed.configureTestingModule({ imports: [AppComponent], }).compileComponents(); }); it('should create the app', () => { const fixture = TestBed.createComponent(AppComponent); const app = fixture.componentInstance; expect(app).toBeTruthy(); }); it(`should have the 'projekt01' title`, () => { const fixture = TestBed.createComponent(AppComponent); const app = fixture.componentInstance; expect(app.title).toEqual('projekt01'); }); it('should render title', () => { const fixture = TestBed.createComponent(AppComponent); fixture.detectChanges(); const compiled = fixture.nativeElement as HTMLElement; expect(compiled.querySelector('h1')?.textContent).toContain('Hello, projekt01'); }); });
A 17-s verzióban átnevezték az app.module.ts fájl app.config.ts névre, és a tartalma is változott.
Az src/app/app.config.ts állományban regisztráljuk az angular saját moduljait használat előtt.
import { ApplicationConfig } from '@angular/core'; import { provideRouter } from '@angular/router'; import { routes } from './app.routes'; export const appConfig: ApplicationConfig = { providers: [provideRouter(routes)] };
Alapértelmezetten be van jegyezve a routes modul. Ha újabb modulokat szeretnénk felvenni, azt itt tehetjük meg. Például a HttpClientModule bejgyzése:
//... import { HttpClientModule } from '@angular/common/http'; //... export const appConfig: ApplicationConfig = { providers: [ provideRouter(routes), importProvidersFrom(HttpClientModule) ] };
A Componizer számára meg van jelölve függőségként a @componizer/schematics Node.js csomag. Telepítése:
npm install -D @componizer/schematics
A komponensek mozgatása ezek nélkül is lehetséges.
Webhely:
JavaScript, Angular, stb: