2016-07-10 9 views
0

Eine gute Übung bei der Verwendung von Angular besteht darin, die Moduldefinition von jeder Verwendung dieses Moduls zu trennen (eine Verwendung pro Datei).Umgang mit Dateien Bestellung über Verkettung mit WebPack?

Zum Beispiel:

//HomeModule.js 
angular.module('home', []); 

//HomeService.js 
angular.module('home') 
.service('HomeService', HomeService); 

Klassisches Problem ist in Bezug auf Dateien Verkettung:
Wenn HomeService.js vor HomeModule.js in der endgültigen Datei eingespritzt wird, dies in diesem Fehler führen würde:

Uncaught Error: [$injector:modulerr] 

schluck Verwendung Es gibt ein handliches gulp-angular-sort, das es für uns verwalten könnte.

Wie mit Angular Dateien Bestellung im Umgang mit WebPack und Dateien Verkettung umgehen, um diese Art von Störung zu verhindern?

+0

Ich denke, ich habe dank der Webpack-Module eine schöne Lösung gefunden. github.com/nazar/angular-es6-webpack-seed/blob/master/src/app/... Jede Komponente wird in der Nähe der Moduldeklaration deklariert, aber die Implementierung jeder Komponente befindet sich in einer eigenen Datei. – Mik378

Antwort

1

Ich stimme nicht zu, diese Zeile .service('HomeService', HomeService); gehört zum Modul, nicht Service. So haben Sie folgende Einstellung:

HomeService.service.js:

export default ['$timeout', ..., ($timeout, ...) => { /*some code*/}] 

HomeModule.js:

import HomeService from 'HomeService.service.js' 

angular.module('home', []) 
.service('HomeService', HomeService); 

Sie haben noch keine Probleme mit, um in diesem Fall.

+0

Darauf habe ich auf meinen obigen Kommentar hingewiesen;) – Mik378