Ответ 1
Обновление: ближайший ответ ниже не подходит. Пожалуйста, ознакомьтесь с последним дополнением (от 1 марта 2015 г.) к этому ответу.
Получил! Согласно статье Брайана Форда о Building Huuuuuuuge Angular Apps, лучше всего подключить сервисы и фабрики к приложению в отдельном файл, например:
root-app-folder
├── index.html
├── scripts
│ ├── controllers
│ │ └── main.js
│ │ └── ...
│ ├── directives
│ │ └── myDirective.js
│ │ └── ...
│ ├── filters
│ │ └── myFilter.js
│ │ └── ...
│ ├── services
│ │ └── myService.js
│ │ └── ...
│ ├── vendor
│ │ ├── angular.js
│ │ ├── angular.min.js
│ │ ├── es5-shim.min.js
│ │ └── json3.min.js
│ └── app.js
├── styles
│ └── ...
└── views
├── main.html
└── ...
(PSST! В случае, если вам интересно, Брайан Форд является частью команды AngularJS, поэтому его ответ кажется довольно законным.)
Дополнение (24 апреля 2013 г.)
Это просто: Yeoman - фантастический инструмент для создания приложений с надлежащей структурой каталогов для большие, функциональные приложения Angular. Он даже имеет Grunt и Bower упакован в!
Добавление (1 марта 2015 г.)
Согласно комментарию через PaoloCargnin, Google рекомендует другую структуру, как описано в этот документ. Структура должна выглядеть так:
sampleapp/
app.css
app.js top-level configuration, route def’ns for the app
app-controller.js
app-controller_test.js
components/
adminlogin/
adminlogin.css styles only used by this component
adminlogin.js optional file for module definition
adminlogin-directive.js
adminlogin-directive_test.js
private-export-filter/
private-export-filter.js
private-export-filter_test.js
userlogin/
somefilter.js
somefilter_test.js
userlogin.js
userlogin.css
userlogin.html
userlogin-directive.js
userlogin-directive_test.js
userlogin-service.js
userlogin-service_test.js
index.html
subsection1/
subsection1.js
subsection1-controller.js
subsection1-controller_test.js
subsection1_test.js
subsection1-1/
subsection1-1.css
subsection1-1.html
subsection1-1.js
subsection1-1-controller.js
subsection1-1-controller_test.js
subsection1-2/
subsection2/
subsection2.css
subsection2.html
subsection2.js
subsection2-controller.js
subsection2-controller_test.js
subsection3/
subsection3-1/
etc...