Kürzlich habe ich wieder mit einem neuen AngularJS-Projekt angefangen. Erneut habe ich als Basis das hervorragende Boilerplate-Projekt von Jake Marsh benutzt. Es enthält so gut wie alles was man braucht, um ein gutes Projekt zu starten: Test-Frameworks, Gulp-basiertes Build-System, BrowserSync, SASS, UI-Router, RequireJS, Minifizierung, etc.
Es ist auch schon sehr gut durchstrukturiert, da einzelne Funktionalitäten in kleine Einzelfiles aufgesplittet sind, die per require oder bulk-require injected werden. Ich ändere allerdings immer eine Sache: ich gruppiere meine JavaScript- und SASS-Files nach Feature und nicht nach Funktion. Also statt
app/js/controllers/checkout.js
app/js/services/checkout.js
benutze ich z.B.
app/js/checkout/checkout.controller.js
app/js/checkout/checkout.service.js.
So hat man alle Resourcen zu einem Feature gebündelt. Das Feature-Modul muss dann noch in der main.js geladen werden.
Für's Deployment empfehle ich außerdem noch einen SFTP gulp task einzubauen.
Es ist auch schon sehr gut durchstrukturiert, da einzelne Funktionalitäten in kleine Einzelfiles aufgesplittet sind, die per require oder bulk-require injected werden. Ich ändere allerdings immer eine Sache: ich gruppiere meine JavaScript- und SASS-Files nach Feature und nicht nach Funktion. Also statt
app/js/controllers/checkout.js
app/js/services/checkout.js
benutze ich z.B.
app/js/checkout/checkout.controller.js
app/js/checkout/checkout.service.js.
So hat man alle Resourcen zu einem Feature gebündelt. Das Feature-Modul muss dann noch in der main.js geladen werden.
Für's Deployment empfehle ich außerdem noch einen SFTP gulp task einzubauen.