I really like this kind of approach to 2D games JavaScript development.
I'm regularly using CraftyJS to develop 2D games but I feel like there's something wrong in the development process. The library is huge and therefore hard to maintain, and I'm only using a little part of it.
By using a "gameloop" library and npm + browserify to define dependencies you can include whatever rendering library you want (pixi.js, three.js, etc.).