Go for JSPM. JSPM only responsibility is module management. That's what makes it suitable to use alongside gulp, so gulp can take care of task automation. They integrate super nicely too (https://github.com/nachoaIvarez/es6-webapp-starterkit). Since JSPM it's built on top SystemJS, that means you can use all kind of dependencies: RequireJS, AMD, CommonJS, global shims, and most importantly ES6 modules, all of them with the ES6 module syntax. And you can get those dependencies from all providers, such as npm, bower, github, etc. They just end up available like import io from 'socket-io'. That's cool. No ../../../(node_modules|bower_components)/* garbage. Webpack cares for module loading, but it does not support all format out of the box, and I doubt you can use all types of modules as ES6 modules. Webpack also takes care of the build process, so using it alongside gulp will be a total overkill. Webpack and JSPM are both great, but if gulp is already part of your build process, I would recommend JSPM all the way. I won't use browserify.