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.