2017-09-01 5 views
0

Es funktioniert auf ng serve aber Fehler geben wie folgtnicht in der Lage zu exportieren MaterialModule von shared.module.ts auf Bauzeit

ERROR in Unexpected value 'MaterialModule in E:/Code/employee-web/node_modules/@angular/material/typings/index.d.ts' 

impor ted by the module 'SharedModule in E:/Code/employee-web/src/app/shared/shared.module.ts'. Please add a @NgModule annotatio n. ERROR in ./src/main.ts Module not found: Error: Can't resolve './$$_gendir/app/app.module.ngfactory' in 'E:\Code\employee-web\src' resolve './$$_gendir/app/app.module.ngfactory' in 'E:\Code\employee-web\src' using description file: E:\Code\employee-web\package.json (relative path: ./src) Field 'browser' doesn't contain a valid alias configuration after using description file: E:\Code\employee-web\package.json (relative path: ./src) using description file: E:\Code\employee-web\package.json (relative path: ./src/$$_gendir/app/app.module.ngfactory) no extension Field 'browser' doesn't contain a valid alias configuration E:\Code\employee-web\src\$$_gendir\app\app.module.ngfactory doesn't exist .ts Field 'browser' doesn't contain a valid alias configuration E:\Code\employee-web\src\$$_gendir\app\app.module.ngfactory.ts doesn't exist .js Field 'browser' doesn't contain a valid alias configuration E:\Code\employee-web\src\$$_gendir\app\app.module.ngfactory.js doesn't exist as directory E:\Code\employee-web\src\$$_gendir\app\app.module.ngfactory doesn't exist [E:\Code\employee-web\src\$$_gendir\app\app.module.ngfactory] [E:\Code\employee-web\src\$$_gendir\app\app.module.ngfactory.ts] [E:\Code\employee-web\src\$$_gendir\app\app.module.ngfactory.js] [E:\Code\employee-web\src\$$_gendir\app\app.module.ngfactory] @ ./src/main.ts 3:0-74 @ multi ./src/main.ts

jemand in diese aussehen kann?

hier ist sharedModule

> @NgModule({ 
> 
> declarations: [], providers: [ 
>  ], imports: [ 
>  HttpModule, 
>  MaterialModule, 
>  ], exports: [ 
>  CommonModule, 
>   //matrial MOdule 
>  // MdTooltipModule, 
>  // MdTabsModule, 
>  // MdSlideToggleModule, 
>  // MdIconModule, 
>  // MdDialogModule, 
>  // MdButtonModule, 
>  // MdListModule, 
>  // MdCardModule, 
>  // MdToolbarModule, 
>  // MdProgressSpinnerModule, 
>  // MdProgressBarModule, 
>  MaterialModule, 
> 
> 
>  ] }) export class SharedModule { } 
+1

Welche Version von Material verwenden Sie? MaterialModule ist seit einiger Zeit veraltet und es wird nun empfohlen, die Komponentenmodule einzeln zu importieren. – yoonjesung

+0

@ yoonjesung hier ist Version "@ eckig/material": "^ 2.0.0-beta.8", –

+0

Sieht aus, als ob Sie eine der neuesten Versionen verwenden. Anstatt MaterialModule zu importieren/exportieren, importieren/exportieren Sie stattdessen die einzelnen Komponentenmodule. – yoonjesung

Antwort

0

Sie haben die folgende wahrscheinlich getan:

import {MaterialModule} from "@angular/material"; 

@NgModule({ 
    declarations: [], 
    providers: [], 
    imports: [ 
    HttpModule, 
    MaterialModule, 
    ], 
    exports: [ 
    CommonModule, 
    MaterialModule, 
    ] 
}) 
export class SharedModule {} 

Allerdings hat die MaterialModule für eine Weile als veraltet jetzt (ich erinnere mich nicht, welche Version genau) . Es wird nun empfohlen, dass Sie die Komponenten-Module einzeln zu importieren: https://material.angular.io/guide/getting-started#step-3-import-the-component-modules

So etwas ändern wie folgt aus:

// Import whatever components you intend to use in this shared module here 
import {MdButtonModule, MdCheckboxModule} from '@angular/material'; 

@NgModule({ 
    ... 
    imports: [MdButtonModule, MdCheckboxModule], 
    exports: [MdButtonModule, MdCheckboxModule], 
    ... 
}) 
export class SharedModule {} 

Sie können die MaterialModule Funktionalität emulieren (der Küchenspüle) von jeder einzelnen Komponente Modul zur Verfügung zu importieren, und dann exportieren sie von Ihrem geteilten Modul.

+0

Ich habe das versucht, gibt den gleichen Fehler. –

+0

es gibt Fehler wie folgt ERROR in Unerwarteten Wert 'MdAutocompleteModule in E:/Code/Mitarbeiter-web/node_modules/@ eckig/material/typings/index.d.ts' importiert von dem Modul 'AppModule in E:/Co de/mitarbeiter-web/src/app/app.module.ts '. Bitte fügen Sie eine "@ NgModule" Annotation - –

+0

Hmm seltsam. Hast du auch @ angular/cdk installiert? Ich glaube, das ist auch eine Abhängigkeit, obwohl nicht sicher, ob das irgendetwas betrifft. – yoonjesung

-1

Ich hatte den gleichen Fehler mit MdDialog von MaterialModule. Ich habe es gerade repariert und es funktioniert.

Ich reparierte es, indem ich das bestimmte materielle Modul spezifizierte, das ich in meiner APP verwende.

in meinem app.module.ts:

import { MdDialogModule } from '@angular/material'; 
imports: [ 
    MdDialogModule 
] 

in meiner Komponente:

import { MdDialog } from '@angular/material' 
import { AuthorizationComponent } from '../authorization/authorization.component' 

export class HomeComponent implements OnInit { 
    constructor(private dialog: MdDialog){} 

    ngOnInit() { 
    this.dialog.afterAllClosed 
    .subscribe(() => { 
      //make changes 
     }) 
    } 

    sign_up() { 
     this.dialog.open(AuthorizationComponent) //open component 
    } 

}