browserify / webpack / seajs / requirejs ,这四个都是JS模块化的方案,Gulp是一个工具。其中seajs / require 是一种类型,browserify / webpack 是另一种类型。
browserify / webpack / seajs / requirejs 的简单区分:
seajs / require : 是一种在线"编译" 模块的方案,相当于在页面上加载一个 CMD/AMD 解释器。这样浏览器就认识了 define、exports、module 这些东西。也就实现了模块化。
browserify / webpack : 是一个预编译模块的方案,相比于上面 ,这个方案更加智能。以webpack为例。首先,它是预编译的,不需要在浏览器中加载解释器。另外,你在本地直接写JS,不管是 AMD / CMD / ES6 风格的模块化,它都能认识,并且编译成浏览器认识的JS。
Gulp是一个工具,而seajs / require/browserify / webpack 是模块化方案。Gulp也可以配置seajs、requirejs甚至webpack的插件。