代码之家  ›  专栏  ›  技术社区  ›  shannon

在哪里指定模块依赖项?

  •  0
  • shannon  · 技术社区  · 11 年前

    我遵循的是按特征组织角度资产的标准做法;例如 AngularJS Folder Structure AngularJS Best Practices: Directory Structure .

    我应该将模块/依赖关系声明放在哪个文件中?

    我正在努力解决以下问题:

    • 我希望能够对我的 <script> 出于维护原因,按字母顺序引用,但我不能,因为这会破坏Angular引导(对于某些模块)。
    • 我试着把它们按字母顺序排在第一位 *.js 文件,但随着我的应用程序的增长,我花了很多时间四处移动依赖关系声明。
    • 我经常不得不四处寻找模块声明。
    • 由于相关的原因,我经常盯着Angular相对不具信息的模块错误。
    • 无论如何,将模块声明附加到特定控制器似乎意味着不存在的直接关联。

    下面是一个示例:

    metric/
        _module.js // Should I create this file?
        detail-controller.js
        detail.html
        search-filter.js
        selector-controller.js
        selector-directive.js
        selector.html
    

    目前,对于这个模块,这行代码存在于我的模块的一个控制器中,你猜是哪一个!;)

    作为一个可能的解决方案,我并不完全满意,我是否应该将每个模块定义放在自己的一行小文件中?

    angular.module('metric', ['lib', 'ngSanitize', 'ui.select', 'data']);
    

    你是怎么做到的?我是否错过了其他聪明或明显的解决方案?

    p、 作为一个相关的问题,如果您愿意,如何跟踪模块的哪些组件是依赖项的来源?

    2 回复  |  直到 9 年前
        1
  •  0
  •   Joshua Kelly    11 年前

    我会把它进一步分解。

    metric/ 
        metric.js
        controllers/
            detail-controller.js
            selector-controller.js
        directives/
            selector-directive.js
        filters/
            search-filter.js
        templates/
            detail.html 
            selector.html
    
        2
  •  0
  •   shannon    11 年前

    现在我已经使用了一段时间,并且因为我已经开始使用gulp预编译javascript,所以单行模块声明文件似乎是我的最佳解决方案。

    我给那个文件命名 <special-character>module.js ,以便它在编译时直观地排序到顶部。因为我的布局约定是一个文件夹=一个模块,所以它的工作原理很简单。我的特殊角色是短跑,YMMV。无论如何,我的个人.js文件名不会在生产编译版本中显示。

    最初,我的项目中有一个单行文件,这让我很困扰,但现在我很感激它。它会被编译到我的应用程序javascript中,所以这不是性能问题。此外,有一个明显的地方可以查找依赖项,在依赖项更改的修订控制日志中清晰地跟踪,以及使用我自己的自定义工具从我的源文件中记录依赖项的简单过程。