webpack/browserify/seajs/requirejs/glup/grunt 几者的关系和区别

webpack/browserify/seajs/requirejs/glup/grunt 几者的关系和区别

参考链接:
https://zhidao.baidu.com/question/1799220342210982227.html
https://www.cnblogs.com/lovesong/p/6413546.html

实际上gulp/grunt 和 webapck/browserify/seajs/requirejs 是两种不同的东西。这些工具在功能上有重叠的地方,但是前者侧重在前端开发的工作流程,后者则侧重模块化打包。

gulp/grunt:

是一种能够优化前端开发的工作流程的工具,比如css/js的压缩混淆,预处理语言的编译、图片体积优化等等。我们只需要定义任务(Task),配置需要的相关插件,然后定义执行顺序,来让gulp执行这些任务,从而构建项目的整个前端开发流程。

seajs/requirejs/webpack/browserify:

这四个都是前端模块化的方案,强调模块化开发,而那些文件压缩合并、预处理等功能,不过是附带的功能。其中seajs / require 是一种类型,browserify / webpack 是另一种类型。

seajs/requirejs: 是一种在线"编译" 模块的方案,相当于在页面上加载一个 CMD/AMD 解释器。这样浏览器就认识了 define、exports、module 这些东西。也就实现了模块化。

webpack/browserify: 是一个预编译模块的方案,相比于上面 ,这个方案更加智能。以webpack为例。首先,它是预编译的,不需要在浏览器中加载解释器。另外,你在本地直接写JS,不管是 AMD / CMD / ES6 风格的模块化,它都能认识,并且编译成浏览器认识的JS。

搭配使用

另外,在工具使用的搭配上,可以采用gulp/grunt + webpack/browserify/seajs/requirejs 这样的搭配。以gulp + webpack 为例:gulp与webpack上是互补还是可替换的,取决于项目的需求。如果只是个vue或react的单页应用,webpack也就够用;如果webpack某些功能使用起来麻烦甚至没有(雪碧图就没有),那就可以结合gulp一起用。

gulp 与 webpack 的详细对比请查看:http://www.cnblogs.com/lovesong/p/6413546.html

猜你喜欢

转载自blog.csdn.net/lychee_xiahua/article/details/84375323