javascript - למה מודול האפליקציה לא קיים ב-Angular 17?


הורדתי עם npm את הגרסה החדשה של Angular ולא ראיתי את הקובץ app.module.ts.

האם זה הוסר ממבנה הפרויקט?

.

ניסיתי ליצור אחד חדש. זה מרגיש מוזר.

תשובה #1

מגרסה 17 של Angular ואילך, Standalone הוא עכשיו המוגדר כברירת מחדל החדשה עבור ה-CLI.

אז כשאתה יוצר פרויקט חדש, לא יהיו בו מודולים אם אינך מציין משהו.

עם זאת, עדיין אפשר ליצור אפליקציה מבוססת מודולים על ידי שימוש בדגל --no-standalone :

ng new --no-standalone

רכיבים עצמאיים הם תכונה שהוצגה בגרסה v14. עם השינוי בגרסה v17, צוות Angular ממליץ בחום להשתמש בהם מכיוון שהם קלים יותר לשימוש, להבנה ודורשים פחות קוד חזרתי.

למדריכים המשתמשים ברכיבים עצמאיים, אני ממליץ לכם להציץ באתר התיעוד החדש.

תשובה #2

אתה יכול ליצור זאת ידנית בפרויקט הקיים.

אם בפרויקט Angular שלך חסר הקובץ app.module.ts, אתה יכול ליצור אותו ידנית בתיקייה src/app. הנה מדריך שלב-אחר-שלב ליצירה והגדרה של קובץ app.module.ts בפרויקט Angular קיים שלך:

צור קובץ app.module.ts: בתיקיית src/app של הפרויקט שלך, צור קובץ חדש בשם app.module.ts. ייבא מודולים דרושים: פתח את קובץ app.module.ts וייבא את מודולי Angular הדרושים ואת מודולי Angular Material. לדוגמה, ייתכן שייבא מודולים כגון BrowserModule, FormsModule, ReactiveFormsModule ומודולי Angular Material כגון MatFormFieldModule, MatInputModule וכו׳.

הנה דוגמה לאיך סעיף הייבוא יכול להיראות:

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { MatFormFieldModule } from '@angular/material/form-field';
import { MatInputModule } from '@angular/material/input';

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

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,
    FormsModule,
    ReactiveFormsModule,
    BrowserAnimationsModule,
    MatFormFieldModule,
    MatInputModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }