How to share code between multiple projects with angularJS

后端 未结 3 583
刺人心
刺人心 2021-02-07 06:44

I was wondering what would be the best practice to share common libraries and own modules between multiple angularJS projects.

Let\'s assume that I\'m working on two dif

3条回答
  •  一向
    一向 (楼主)
    2021-02-07 06:49

    You can do it that way, but it may give you headaches if you ever want Project 1 and Project 2 to use two different versions of the Shared components. Imagine that you need to release Project 1 with the latest shared components, but Project 2 still relies on a previous version of the shared components. What a mess. Some other options:

    1. Make the shared components Bower components that could be included into either project as dependencies (see http://briantford.com/blog/angular-bower)
    2. Compile all shared assets into a mutually accessible URL (see https://medium.com/@KamilLelonek/sharing-templates-between-angular-applications-b56469ec5d85)
    3. Basically copy/paste components between projects, either manually or using something like gulp (see https://groups.google.com/forum/#!msg/angular/TxE5yoQkG-U/6-vWAZsqn1YJ)

    The second option has a lot of moving parts and requires changes to your applications, not to mention the inability to deploy different versions of the shared code in each project. The first has the benefit of being easy to slice into 3 repositories: Project 1, Project 2, and Shared. If Shared is a Bower dependency in Project 1 and Project 2, a simple bower update will get you the latest version in either project. Or you can lock a project to particular versions of Shared.

    Option 3 seems like it gives you the most control, but you will quickly lose track of which version of Shared your project is using. Option 1 solves that.

提交回复
热议问题