我想知道在多个 angularJS 项目之间共享公共(public)库和自己的模块的最佳做法是什么。
假设我正在从事两个不同的项目。两者都依赖于 angularJS、bootstrap 等库。
我有一个如下的文件结构:
- Project 1
- index.html
- css
- js
- module A
- module B
- lib
- angular
- bootstrap
- Project 2
- index.html
- css
- js
- module B
- module X
- lib
- angular
- bootstrap
所以我正在考虑只创建一个包含所有共享组件的目录,以便我得到某事。喜欢:
- Shared
- angular
- bootstrap
- module B
- Project 1
- index.html
- css
- js
- module A
- Project 2
- index.html
- css
- js
- module X
我有模块B写成:
angular.module("moduleB", [])
.service("SB", [function () {/*functionality here*/}]);
.factory("FB", [function () {/*functionality here*/}]);
然后将其作为依赖项包含在我的 Project 1/2 中,例如:
angular.module("project1", ["moduleB"]);
来实现这种方法。
那会是最好的方法吗?有什么替代方案?
最佳答案
您可以这样做,但如果您希望项目 1 和项目 2 使用共享组件的两个不同版本,这可能会让您头疼。想象一下,您需要发布带有最新共享组件的 Project 1,但 Project 2 仍然依赖于以前版本的共享组件。真是一团糟。其他一些选项:
第二个选项有很多移动部件,需要更改您的应用程序,更不用说无法在每个项目中部署不同版本的共享代码。第一个的好处是很容易分成 3 个存储库:项目 1、项目 2 和共享。如果 Shared 是 Project 1 和 Project 2 中的 Bower 依赖项,则简单的
bower update
将为您提供任一项目的最新版本。或者,您可以将项目锁定到特定版本的 Shared。选项 3 似乎为您提供了最大的控制权,但您很快就会忘记您的项目正在使用哪个版本的 Shared。选项 1 解决了这个问题。
关于javascript - 如何使用 angularJS 在多个项目之间共享代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29002979/