Angular:基于客户

时间:2016-02-09 11:14:37

标签: angularjs gruntjs project modularity project-structure

我正在开发一个带角度的网络应用程序,这将用于不同的客户。每个客户都有自己的需求(特定功能)和风格(css)。虽然分享了很多功能。

我正在寻找的是一个完整的解决方案,以保持这个项目的清洁和可维护性。代码将在每个客户的本地服务器上运行,客户不应该看到其他客户的特定代码(换句话说,像grunt这样的东西应该已经过滤了部署)。

我的想法:

  • 定义grunt中的不同任务,以便按客户观察,构建等
  • 定义父控制器(〜继承)和父视图以共享功能
  • 为每位客户使用子文件夹
    • e.g。观点:
      • app / views / general / home.html(加载main.tpl.html)
      • 应用程序/视图/ customer1表/ main.tpl.html
      • 应用程序/视图/的customer2 / main.tpl.html
    • e.g。控制器:
      • 应用程序/脚本/控制器/通用/...
      • app / scripts / controllers / customer1 / ...(扩展通用控制器)
    • e.g。 CSS
      • 应用程序/风格/一般/...
      • 应用程序/风格/ customer1表/...

Grunt将仅选择与客户相关的文件,并应删除与客户相关的路径。 (例如app / views / customer1 /和app / views / customer2 /应该转到app / views / customer,由app / views / general / home.html加载)

一个很大的缺点是app / views / general / home.html在开发时会引用不存在的文件。对于index.html,我需要包含目标dist文件夹中的控制器,而不是项目文件夹结构(开发时)。这使得一切都变得不那么可读和合乎逻辑。

你认为这是一个好方法吗?是否有想到的优化或替代方案?你知道任何帮助这种设置的grunt模块或角度模块吗?

提前致谢!

1 个答案:

答案 0 :(得分:0)

您可以使用的一种方法是运行基本节点服务器,该服务器将使用休息调用存储和提供用户首选项。因此,您可以保存用户特定的设置,例如布局等,并在存储在本地或远程节点服务器上的简单JSON文件中更新这些设置。