美文网首页
gulp 和 webpack 的区别

gulp 和 webpack 的区别

作者: 霜天晓 | 来源:发表于2018-03-20 18:07 被阅读0次

      gulp 是自动化构建工具,可以配合各种插件做 js 压缩、css 压缩、less 编译、代码检查等,替代手工实现自动化工作:

    • 构建工具
    • 自动化
    • 提高效率用

      webpack是文件打包工具,可以把项目的各种 js、css文件等打包合并成一个或多个文件,主要用于模块化方案,预编译模块的方案

    • 打包工具
    • 模块化识别
    • 编译模块化代码方案用

      Gulp应该和Grunt比较。Gulp / Grunt 是一种工具,能够优化前端工作流程。比如自动刷新页面、combo、压缩css、js、编译less等等。简单来说,就是使用Gulp/Grunt,然后配置你需要的插件,就可以把以前需要手工做的事情让它帮你做了。

      说到webpack,那还要说到 seajs / requirejs / browserify。这四个都是JS模块化的方案。其中 seajs / require 是一种类型,webpack/browserify是另一种类型。

    • seajs / require : 是一种在线"编译" 模块的方案,相当于在页面上加载一个CMD/AMD解释器。这样浏览器就认识了 define、exports、module 这些东西。也就实现了模块化。
    • webpack/browserify : 是一个预编译模块的方案,相比于上面 ,这个方案更加智能。没用过 browserify,这里以webpack为例。首先,它是预编译的,不需要在浏览器中加载解释器。另外,你在本地直接写JS,不管是 AMD / CMD / ES6 风格的模块化,它都能认识,并且编译成浏览器认识的JS。

      这样就知道,Gulp是一个工具,而webpack是模块化方案。Gulp 也可以配置seajsrequirejs 甚至 webpack 的插件。

    • AMDCMD分别为模块化规范

    • requirejsseaJs分别为实现规范的一种方案。

      • 在线编译模块方案:在工程中引入了requirejs,就相当于加载了一个AMD解释器,使得在代码中可以使用 define、exports、module 这些方法,实现模块化
    • browserify / webpack

      • 预编译模块方案:在编译过程中将 AMD / CMD / ES6 风格的模块化代码编译为 js文件,同时其他类型的静态资源也可以被编译成js而模块化地引入。
    • gulp:一种优化前端工作流程的工具,可以将一些人工完成的工作如合并、压缩等自动化完成。

    相关文章

      网友评论

          本文标题:gulp 和 webpack 的区别

          本文链接:https://www.haomeiwen.com/subject/fdpbqftx.html