Я зачастую использую такую структуру, только перед релизом собираю js приложения через минификатор
uglifyjs -c -m
(важно собирать по порядку)
Декларации пишу так:
!(function() {
'use strict';
Ctrl.$inject = ['$scope', 'Auth'];
function Ctrl($scope, Auth) {
// some code...
}
angular.module('MyModule').controller('MyCtrl', Ctrl);
})();
Собственно, сама структура:
app/
controllers/
auth.js
directives/
inputmatch.js
emailbusy.js
models/
auth.js
user.js
views/
front.html
auth/
signup.html
signin.html
app.js
states.js
js/
angular.js
angular-ui-router.js
angular-resource.js