【问题标题】:How to acheive sharing assets between multiple Angular.js apps hosted in different servers如何实现托管在不同服务器上的多个 Angularjs 应用之间共享资产
【发布时间】:2014-04-26 12:51:44
【问题描述】:

您好,我对 Angular.js 很陌生,正在尝试评估是否将其用于我们的下一个项目。 有没有人有构建多个 Angular.js 应用程序的经验,这些应用程序托管在可以共享模块、模板和指令的不同服务器(很可能是 Spring 后端)中?

基本上,我们有 3 个应用程序,它们执行类似的功能,但基于角色的业务逻辑会略有不同...此外,出于安全考虑,这些应用程序可能托管在不同的服务器上,其中一个位于防火墙后面。我希望能够在应用程序(资产、js、html、css、图像、指令等)之间尽可能多地共享。有哪些最佳做法可以实现这一目标?

提前致谢!

【问题讨论】:

  • 您想共享完全相同的代码吗?从理论上讲,您可以将其存储在各种 CDN 上(基本上是您自己的服务器)并使用脚本标签加载 JS。只需使用绝对 URL 引用图像和其他资产。或者您是在谈论创建两个通过 JavaScript 以某种方式进行通信的独立应用程序?

标签: javascript angularjs frameworks angularjs-directive


【解决方案1】:

IMO AngularJS 的一大优势在于它可以让您以我们过去开发企业软件的方式开发 Web 应用程序:结构良好、组织良好、模式强大等。

但认为他们永远是 1:1 是错误的。归根结底,您谈论的是一组小脚本文件。它们没有经过编译(缩小不算数),它们没有真实身份感或彼此之间的关系等。任何结构或重用都将来自您以及您如何开发应用程序。

以下是一些最佳实践的起点:

  • 学习和利用指令和服务。它们是 Angular 的核心和灵魂,也是它最初值得使用的真正原因。基本上,每个单例都是一个服务(想想“经理”),每个组件或小部件都是一个指令。当您开始谈论重用时,这一点至关重要。

    您可以创建一个名为 modalWindow 的小部件和一个名为 modalManager 的管理器,如果您仔细构建它们,您可以在您描述的所有应用程序中重复使用它们。或者,如果你写得不好,你会让它们难以重用! :) 花一些时间了解这一层,你会很高兴的。

  • 学习和利用 Grunt(或 Grasp 或其他什么,但如果您习惯于 Ant,Grunt 是一个很好的起点)。您的用例要求构建过程、构建自动化,甚至可能需要 Jenkins 将所有部分联系在一起。

    Angular 中没有任何东西知道如何根据应用程序的需要在构建过程中混合和匹配某些元素(它具有“依赖项”但仅适用于 JS - 如果您有两个版本的小部件并且您想要确保加载了正确的?)Grunt(或类似的)将为您提供企业级构建工具,它将为您提供幕后所需的其余内容。

【讨论】:

    猜你喜欢
    • 2013-11-11
    • 1970-01-01
    • 2012-08-19
    • 2012-12-20
    • 2018-04-03
    • 2010-12-01
    • 2011-07-16
    • 1970-01-01
    • 2023-03-27
    相关资源
    最近更新 更多