2017-07-25 3 views
2

Ich habe eine neue Installation von Electron Forge mit der angular2 Vorlage. Ich habe die Winkelabhängigkeiten auf ^4.3.1, zone.js auf ^0.8.14 gestoßen und hammerjs zu package.json hinzugefügt (um Angular 4 Materialkomponenten zu verwenden).Electron Forge + Angular 4 bricht mit `'anonymous' ist kein bekanntes Element '

Ich fügte dann die Quelle einer funktionalen NG4-App in das Verzeichnis src/app.

Wenn electron-forge start die Ausgabekonsole ausgeführt wird, korrekt und die App startet, aber die DevTools zeigen diesen Fehler:

Unhandled Promise rejection: Template parse errors: 
'anonymous' is not a known element: 
1. If 'anonymous' is an Angular component, then verify that it is part of this module. 
2. To allow any element add 'NO_ERRORS_SCHEMA' to the '@NgModule.schemas' of this component. ("tin\Desktop\ef-ng\node_modules\electron-compile\lib\protocol-hook.js:216:25) 
    at Generator.next ([ERROR ->]<anonymous>) 
    at step (C:\Users\Quentin\Desktop\ef-ng\node_modules\electron-compile\lib\protocol-h"): ng:///C:/Users/Quentin/Desktop/ef-ng/src/app/[email protected]:23 

Hier ist, wie mein app.component.html aussieht:

<app-main-toolbar></app-main-toolbar> 
<app-tree-item-tabs></app-tree-item-tabs> 
<app-search-view *ngIf="appState.searchIsVisible"></app-search-view> 
<app-media-view *ngIf="appState.activeMedia" [media]="appState.activeMedia"></app-media-view> 

Wenn ich es mit diesem ersetzen , dann läuft es OK (aber das ist natürlich nicht das, was ich suche):

<app-main-toolbar></app-main-toolbar> 
<app-tree-item-tabs></app-tree-item-tabs> 
<app-search-view></app-search-view> 

Hinweis Ich entfernte die app-media-view Komponente und die *ngIf auf der app-search-view einen. Ich benutzte einen Trick, der moduleId : module.id.split('\\').join('/'), zu meinen @Component Deklarationen hinzufügt, aber das funktioniert hier nicht.

Ich bin wirklich hier fest.

Irgendeine Idee? Danke!

bearbeiten

Hier ist, wie media in app-media-view definiert:

get media(): Media { 
    return this._media; 
} 

@Input() 
set media(value: Media) { 
    this._media = value; 
    // More things 
} 

Hier ist, wie appState im AppComponent definiert:

constructor(
    protected bootstrap:BootstrapService, 
    public appState: AppStateService) {} 

Antwort

1

Wahrscheinlich gibt es einige schlechte Referenz in Ihrer Komponenten App -Suchansicht oder App-Medienansicht.

Haben Sie in Ihrer app-media-view Komponente @Input() media: any; deklariert?

Wird in Ihrer App-Komponente appState deklariert? Vielleicht könnten Sie versuchen, sie zu drucken und zu sehen.

Wenn Sie im Verzeichnis src/app die Quelle einer funktionierenden NG4-Anwendung (nicht Elektronenschmiede) hinzugefügt haben, müssen Sie alle Importe und Referenzen auf die Vorlage und die Stile ändern. app ist nicht mehr Ihr Stammordner. Jetzt ist der Stammordner src. Wenn Sie zum Beispiel templateUrl: ./myTemplate.html haben, müssen Sie zu templateUrl: ./src/app/myTemplate.html wechseln.

+0

Gerade beantwortete Ihre Fragen in einer aktuellen Bearbeitung, ich hoffe, das hilft :) – Quentin

Verwandte Themen