Crafty comes with one single JavaScript file called crafty.js, it's highly unopinionated on how you should organize your folder structure, and leaves that to the developers themselves. This can be hard for a beginner and annoying for even an experienced developer since you have to think yourself on how to divide your project into namespaces, modules and even on how to deploy it.
Since Crafty has such a robust user community that is contributing community modules. It's possible to take advantage of this by using these additional components in other HTML5 games without having to recreate the same functionality.
Extending the reach of a game developed with ImpactJS is easy due to the cross-platform nature the framework. There are Considerations around performance, resolution and audio, however all can be appropriately addressed when in development. Works in the browser via Canvas, even on mobile. Easily translatable into a packaged app.
ImpactJS has an active user community that busily produces tremendous resources including videos, books, tutorials, walkthroughs and more. There are also comprehensive class documentation available.