As AeroGear.js gets larger and more complex, it makes sense to revisit our build strategy as well as our dependency management strategy since that affects the build.
I was thinking, and after discussing with Luke I believe he agrees, that we should investigate the use of AMD (Asynchronous Module Definition). What this provides for us is:
- Better modularization between the pieces of code in AeroGear.js
- Better dependency management by specifically defining those dependencies in each module
- A better base for our custom build process
I think all of those reasons point to the need for this implementation. That being said, it doesn't come without a cost. We would need to reorganize the repo and modify each file to make it a proper AMD module. This will take time but I think it is time well spent.
I would be glad to hear if anyone has any thoughts or concerns around this.