Avoid organizing all your routing in a single file as it will result in a large file that is difficult to maintain.
If you are working on a large project, it is recommended to refer to Google's AngularJS structure guidelines first to help developers segment their work within modules for better understanding and manageability. This approach also allows for easy enable/disable of modules during the compilation phase.
For managing dependencies and composition/compilation phases, consider using Gulp and Bower together with Node.js. Below is an example of gulp scripts compilation for a fractal structure:
gulp.task('scripts', function () {
var depJS = dependencies.bower.js.map(function (dep) { return config.bowerLib + dep; });
depJS = depJS.concat(dependencies.node.js.map(function (dep) { return config.nodeLib + dep; }));
var srcJS = ['app/modules/app.js', 'app/modules/**/*.module.js', 'app/modules/**/*.js'];
var libPipe = gulp.src(depJS)
.pipe(plumber())
.pipe(concat('lib.min.js'))
.pipe(size({title: 'js-before lib'}))
.pipe(gulpif(config.minimize.perform, uglify(config.minimize.js)))
.pipe(size({title: ' js-after lib'}))
.pipe(gulp.dest(config.scriptsOutDir));
var pipe = gulp.src(srcJS)
.pipe(plumber())
.pipe(concat('all.min.js'))
.pipe(size({title: 'js-before all'}))
.pipe(gulpif(config.minimize.perform, uglify(config.minimize.js)))
.pipe(size({title: ' js-after all'}))
.pipe(gulp.dest(config.scriptsOutDir));
});
Regarding AngularJS and jQuery, AngularJS includes jQLite and will utilize jQuery if available. It is recommended to only use jQuery/jqlite in directives. Consider the usage of jQuery throughout your project and determine if it can be replaced with jqlite or rewritten using directives for DOM manipulation. If you are using Twitter Bootstrap, explore AngularJS UI-Bootstrap for integration.