在哪里指定模块相关性

Where to specify module dependencies?

本文关键字:相关性 模块 在哪里      更新时间:2023-09-26

我遵循按功能组织角度资产的标准做法;例如AngularJS文件夹结构和AngularJS最佳实践:目录结构。

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

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

  • 出于维护原因,我希望能够按字母顺序对<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.s.作为一个相关的问题,如果你喜欢,如何跟踪模块中的哪些组件是依赖项的来源?

我会把它进一步分解。

metric/ 
    metric.js
    controllers/
        detail-controller.js
        selector-controller.js
    directives/
        selector-directive.js
    filters/
        search-filter.js
    templates/
        detail.html 
        selector.html

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

我将该文件命名为<special-character>module.js,以便在编译时对其进行可视化排序。因为我的布局约定是一个文件夹=一个模块,所以这是示意性的。我的特殊性格是短跑,YMMV。我个人的.js文件名无论如何都不会出现在生产编译版本中。

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