AngularJS文件夹结构

如何为一个大型的可扩展的AngularJS应用程序devise一个文件夹结构?

在这里输入图像说明

按typessorting

在左边,我们有按types组织的应用程序。 对于较小的应用程序来说也不错,但是即使在这里,你也可以开始看到它更难find你要找的东西。 当我想要查找特定视图及其控制器时,它们位于不同的文件夹中。 如果您不确定如何组织代码,那么从这里开始可能是件好事,因为转向右侧的技术非常容易:按结构逐个function。

按特征sorting(首选)

在右侧,项目按function组织。 所有布局视图和控制器都放在布局文件夹中,pipe理内容放在admin文件夹中,所有区域使用的服务放在services文件夹中。 这里的想法是,当你正在寻找一个function的代码工作,它位于一个地方。 服务有点不同,因为他们“服务”许多function。 一旦我的应用程序开始形成,我喜欢这一点,因为它变得更容易pipe理我。

写得很好的博客文章: http : //www.johnpapa.net/angular-growth-structure/

示例应用程序: https : //github.com/angular-app/angular-app

在构build了一些应用程序之后,一些在Symfony-PHP,一些.NET MVC,一些ROR中,我发现对于我来说最好的方式是使用Yeoman.io和AngularJS生成器。

这是最stream行和最常见的结构,维护得最好。

最重要的是,通过保持这种结构,它可以帮助你分离你的客户端代码,并使服务器端技术(各种不同的文件夹结构和不同的服务器端模板引擎)不可知。

这样,你可以轻松地复制和重用你的和其他代码。

这是咕噜生成之前:(但使用yeoman生成器,不要只是创build它!)

/app /scripts /controllers /directives /services /filters app.js /views /styles /img /bower_components index.html bower.json 

而咕噜生成后(concat,uglify,rev等…):

  /scripts scripts.min.js (all JS concatenated, minified and grunt-rev) vendor.min.js (all bower components concatenated, minified and grunt-rev) /views /styles mergedAndMinified.css (grunt-cssmin) /images index.html (grunt-htmlmin) 

我喜欢这个关于angularjs结构的条目

它是由一个angularjs开发者编写的,所以应该给你一个很好的见解

这是一个摘录:

 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 └── ... 

还有一种方法,不是通过框架的结构来组织文件夹,而是通过应用程序的function的结构。 有一个Github的启动Angular / Express应用程序,说明了这个所谓的angular应用程序 。

我在我的第三个angularjs应用程序和文件夹结构每次都有所改善。 我现在保持简单。

 index.html (or .php) /resources /css /fonts /images /js /controllers /directives /filters /services /partials (views) 

我发现这对单一的应用程序很好。 我还没有真正有一个项目,但我需要多个。