It works a lot like NPM but is specifically intended for use with front-end modules.
Features:
- uses System.js (a polyfill for the future ES6-module-loader spec
- supports CommonJS, AMD, and UMD formats
- has plugins for importing other types (ex css)
- support Typescript/Traceur/Babel out of the box
- uses a flat dependency structure (ie like NPM v3)
- can generate bundles and self-executing bundles (incl tree shaking and minify)
- tracks specific versions of dependencies
Unlike NPM, module installation doesn't depend on packages published to a central registry. It can install versioned modules directly from GitHub and NPM. The registry it uses is nothing but GitHub repo with module-to-repo mappings and compatibility shims.
Its great with everything. Frontend / backend, etc. When I removed bower from our app last year, adopted Webpack and migrated everything over to NPM it dramatically simplified things.
Ah, that's good to know; I'd been sticking to Bower for Phoenix' front end stuff, might start looking at migrating them to NPM if Brunch support is stable now.