I think I have reasonable understanding of what npm peer dependencies are and why we need them. A common example is grunt modules. If you are writing a grunt module that is only compatible with version x of grunt, you have to make sure anyone using your grunt module is also using version x of grunt. Makes sense.
However, angular2 has a peer dependency on zone.js. What is the relationship between angular2 and zone.js such that this peer dependency is required? Why can't zone.js be a standard dependency of angular2?
In the grunt example, you can use grunt just fine without the module in question. However, it does not seem possible to use angular2 without zonejs. Seems like more of a standard dependency rather than a peer.