【问题标题】:There is a way to use an modulating AngularJS Application with Yeoman, Bower and Grunt有一种方法可以将调制 AngularJS 应用程序与 Yeoman、Bower 和 Grunt 一起使用
【发布时间】:2014-02-20 17:20:43
【问题描述】:

我正在开发一个非常广泛的 AngularJS 应用程序,为了使其可扩展和维护,我使用了一个模块化架构,例如:

cart/
  CartModel.js
  CartService.js
common/
  directives.js
  filters.js
product/
  search/
    SearchResultsController.js
    SearchResultsModel.js
  ProductDetailController.js
  ProductModel.js
  ProductService.js
user/
  LoginController.js
  RegistrationController.js
  UserModel.js
  UserService.js

上面的文件结构是angular中模块化结构的一个例子。

问题

是否存在适用于这种结构的 Yeoman 生成器?最受欢迎的 generator-angular 使用简单的结构。

【问题讨论】:

标签: angularjs gruntjs yeoman bower yeoman-generator


【解决方案1】:

scripts文件夹下的所有js文件,你可以使用requirejs via grunt-bower-requirejs来管理每个模块自己的依赖关系。

Grunt/yeoman 需要了解所有模块,但您仍然可以获得您期望的抽象和解耦。

【讨论】:

    【解决方案2】:

    您可以简单地自行安排这样的文件。 Angular 生成器将停止正常工作(恕我直言,这没什么大不了的),但 Yeoman 中可用的所有其他东西都不会受到影响。

    看看thiscommit。
    本质上,它将 Gruntfile 中的 * 更改为 ** 并移动相应的文件。
    此外,MODULES.coffee 文件在后来的一些提交中被引入。它将 AngularJS 模块的创建收集在模块文件夹中的一个位置。这是为我的项目需求而发明的自定义约定,我不知道它是否是社区公认的标准。

    它仍然不完美:同一个基于功能的模块的模板和脚本位于 2 个单独的目录树中 - 它们应该在同一个地方。

    编辑:好消息! 根据计划,Yeoman 生成的项目结构将基于功能。
    来源:https://docs.google.com/presentation/d/1OgABsN24ZWN6Ugng-O8SjF7t0e3liQ9UN7hKdrCr0K8/edit#slide=id.g2b6b56d19_086

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-01-03
      • 2023-03-15
      • 2016-08-15
      • 1970-01-01
      • 2013-09-25
      • 1970-01-01
      • 2012-08-19
      • 1970-01-01
      相关资源
      最近更新 更多