FEHLER: @ angular / material / material hat kein exportiertes Member 'MdButtonModule'

8

Der folgende Fehler trat nach dem Upgrade von @ angular / material 2.0.0-beta.11 auf 2.0.0-beta.12 auf:

Modul @ angular / material / material hat kein exportiertes Member 'MdButtonModule'.

Typescript-Code:

%Vor%

Was ist passiert?

  

FEHLER in c: /dev/my-proj/src/app/app-material/app-material.module.ts   (4,3): Modul   '"c: / dev / my-proj / node_module / @ eckig / material / material"' hat keine   exportierter Member 'MdButtonModule'. Fehler in   c: /dev/my-proj/src/app/app-material/app-material.module.ts (5,3):   Modul '"c: / dev / my-proj / node_module / @ eckig / material / material"' hat   kein exportierter Member 'MdCardModule'. Fehler in   c: /dev/my-proj/src/app/app-material/app-material.module.ts (6,3):   Modul '"c: / dev / my-proj / node_module / @ eckig / material / material"' hat   kein exportierter Member 'MdCheckboxModule'. Fehler in   c: /dev/my-proj/src/app/app-material/app-material.module.ts (7,3):   Modul '"c: / dev / my-proj / node_module / @ eckig / material / material"' hat   kein exportierter Member 'MdIconModule'. Fehler in   c: /dev/my-proj/src/app/app-material/app-material.module.ts (8,3):   Modul '"c: / dev / my-proj / node_module / @ eckig / material / material"' hat   kein exportierter Member 'MdOptionModule'. Fehler in   c: /dev/my-proj/src/app/app-material/app-material.module.ts (9,3):   Modul '"c: / dev / my-proj / node_module / @ eckig / material / material"' hat   kein exportierter Member 'MdProgressSpinnerModule'. Fehler in   c: /dev/my-proj/src/app/app-material/app-material.module.ts (10,3):   Modul '"c: / dev / my-proj / node_module / @ eckig / material / material"' hat   kein exportierter Member 'MdSelectModule'. Fehler in   c: /dev/my-proj/src/app/app-material/app-material.module.ts (11,3):   Modul '"c: / dev / my-proj / node_module / @ eckig / material / material"' hat   kein exportierter Member 'MdSidenavModule'. Fehler in   c: /dev/my-proj/src/app/app-material/app-material.module.ts (12,3):   Modul '"c: / dev / my-proj / node_module / @ eckig / material / material"' hat   kein exportierter Member 'MdToolbarModule'. Fehler in Fehler: MdButtonModule   ist kein NgModule       in _getNgModuleMetadata (c: \ dev \ mein-proj \ node_modules \ @angular \ compiler-cli \ src \ ngtools_impl.js: 140: 15)       bei _extractLazyRoutesFromStaticModule (c: \ dev \ mein-proj \ node_modules \ @angular \ compiler-cli \ src \ ngtools_impl.js: 109: 26)       unter c: \ dev \ mein-proj \ node_modules \ @angular \ compiler-cli \ src \ ngtools_impl.js: 129: 27       bei Array.reduce (nativ)       um _extractLazyRoutesFromStaticModule (c: \ dev \ mein-proj \ node_modules \ @angular \ compiler-cli \ src \ ngtools_impl.js: 128: 10)       unter c: \ dev \ mein-proj \ node_modules \ @angular \ compiler-cli \ src \ ngtools_impl.js: 129: 27       bei Array.reduce (nativ)       um _extractLazyRoutesFromStaticModule (c: \ dev \ mein-proj \ node_modules \ @angular \ compiler-cli \ src \ ngtools_impl.js: 128: 10)       bei Object.listLazyRoutesOfModule (c: \ dev \ mein-proj \ node_modules \ @angular \ compiler-cli \ src \ ngtools_impl.js: 53: 22)       bei Function.NgTools_InternalApi_NG_2.listLazyRoutes (c: \ dev \ mein-proj \ node_modules \ @angular \ compiler-cli \ src \ ngtools_api.js: 91: 39)       bei AotPlugin._getLazyRoutesFromNgtools (c: \ dev \ mein-proj \ node_modules \ @gttools \ webpack \ src \ plugin.js: 207: 44)       an _donePromise.Promise.resolve.dann.dann.dann.und dann. (c: \ dev \ my-proj \ node_modules \ @gttools \ webpack \ src \ plugin.js: 443: 24)

    
Frederik Struck-Schøning 08.10.2017, 17:17
quelle

5 Antworten

9

Sie müssen MatButtonModule anstelle von MdButtonModule einfügen. Sie müssen auch das Präfix in Ihrer Vorlage aktualisieren, also md-button sollte jetzt mat-button sein. Befolgen Sie die Richtlinien in diesem Präfix-Updater , um das Präfix in Ihrer gesamten App zu aktualisieren / strong>.

Seit 2.0.0-beta.12 wurde das Md Präfix entfernt und Sie sollten Mat Präfix überall verwenden. Aus dem CHANGELOG von 2.0.0-beta.11 :

  

Für beta.11 haben wir beschlossen, das Präfix "md" abzulehnen   komplett und benutze "mat" vorwärts bewegen. Dies betrifft alle Klassennamen,   Eigenschaften, Eingaben, Ausgaben und Selektoren (CSS-Klassen wurden geändert   zurück im Februar). Die Präfixe "md" werden in der nächsten Beta entfernt   freilassen.

Und aus dem CHANGELOG von 2.0.0-beta.12 :

  

Brechen von Änderungen   Alle "md" Präfixe wurden entfernt.

Siehe diese StackBlitz-Demo mit einzelnen Materialmodulen und mit Mat Präfix.

    
Faisal 08.10.2017 18:17
quelle
3

Ersetzen Sie die Import-Anweisung durch

%Vor%

Die MdSomethingModule Namenskonvention wurde in der Beta.11 veraltet und in Beta.12 wurde es vollständig ersetzt durch MatSomethingModule .

    
quelle
2

Vor Angular Material 2 Beta 3 gab es ein globales MaterialModule, das in das App-Modul importiert werden konnte, um die Komponenten verfügbar zu machen. Der Nachteil dabei ist, dass Baumschütteln nicht effizient genug ist, um den gesamten ungenutzten Code zu entfernen.

MaterialModule wurde daher zugunsten eines projektspezifischen Custom-Material-Moduls abgelehnt, bei dem nur die benötigten Komponenten importiert und exportiert werden. So kann Ihr Modul aussehen:

%Vor%

Sie importieren dieses Modul dann in das Root-App-Modul.

Importieren Sie MaterialModule und fügen Sie es Ihren Importen hinzu. Außerdem müssen Sie die für Animationen in Ihrem Modul erforderlichen Elemente importieren. Ihr App-Modul (z. B. app.module.ts) sieht etwa so aus:

%Vor%

Weitere Informationen zur Verwendung von eckigem Material finden Sie hier Ссылка

    
Uche Azinge 09.10.2017 12:33
quelle
1

Verwenden Sie Mat anstelle von Md . Zum Beispiel

%Vor%

hat funktioniert, aber import { MdButtonModule, MdCheckboxModule } from '@angular/material' hat einen Fehler

    
quelle
0
  • Ersetzen Sie Mat * durch Md * für 2.0.0-beta.11
  • ersetzen Sie Md * durch Mat * siehe deprecation für 2.0.0-beta.12
mani R 07.11.2017 09:30
quelle