AngularJS文件夹结构

Mic*_*ins 185 angularjs

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

Mic*_*ins 250

在此输入图像描述

按类型排序

在左侧,我们有按类型组织的应用程序.对于较小的应用程序来说并不算太糟糕,但即使在这里你也可以开始发现找到你想要的东西变得更加困难.当我想要查找特定视图及其控制器时,它们位于不同的文件夹中.如果您不确定如何组织代码,可以很好地从这里开始,因为很容易转换到右侧的技术:按功能结构.

按功能排序(首选)

在右侧,项目按功能组织.所有布局视图和控制器都放在布局文件夹中,管理内容放在admin文件夹中,所有区域使用的服务都放在services文件夹中.这里的想法是,当您在寻找使功能有效的代码时,它位于一个地方.服务有点不同,因为它们"服务"了许多功能.一旦我的应用程序开始成型,我喜欢这个,因为它对我来说变得更容易管理.

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

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

  • @Jakub当你创建问题时,有一个名为"回答你自己的问题有助于维基"的选项. (34认同)
  • 你在发布后立即回答了自己的问题吗? (22认同)
  • @Ronnie我只记得这是AngularJS最困难的学习曲线之一,所以希望它可以帮助人们.我认为在阅读博客之后我经历了10种不同的布局,而不是. (5认同)
  • [here](https://github.com/mgechev/angularjs-style-guide#directory-structure)是一个社区驱动的angularJS最佳实践页面.他们的文件结构建议是两个例子中两个想法的组合.我更喜欢第二个例子,因为它更依赖于按功能排序的想法. (5认同)
  • @MichaelCalkins,我喜欢这个主意.我刚刚检查了你的一些youtube tuts的角度,很好 (3认同)

Uri*_*igo 32

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

这是最受欢迎和最常见的结构,维护得最好.

最重要的是,通过保留该结构,它可以帮助您分离客户端代码并使其与服务器端技术(各种不同的文件夹结构和不同的服务器端模板引擎)无关.

这样,您就可以轻松复制和重用您的代码和其他代码.

这是在grunt构建之前:(但是使用yeoman生成器,不要只创建它!)

/app
    /scripts
            /controllers
            /directives
            /services
            /filters
            app.js
    /views
    /styles
    /img
    /bower_components
    index.html
bower.json
Run Code Online (Sandbox Code Playgroud)

在grunt构建之后(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)
Run Code Online (Sandbox Code Playgroud)


Chr*_*ris 30

我喜欢这个关于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
    ??? ...
Run Code Online (Sandbox Code Playgroud)