前端打包工具比较

192 阅读1分钟

webpack与grunt、gulp的不同?

  • grunt,gulp将构建过程分为过多个task,需要掌握每个task的调用顺序,grunt,gulp属于更轻量级别的构建,能够单独构建某个文件
  • webpack打包是根据入口文件,然后利用模块的导入导出构建一个构建依赖图,webpack使用loader来加载不同的文件,使用plugin来扩展webpack的功能。

与webpack类似的工具还有哪些?谈谈你为什么最终选择(或放弃)使用webpack?

同样基于入口的打包工具还有: rollup,parcel

有哪些常见的Loader?他们是解决什么问题的?

  • style-loader:把css代码注入到javascript代码中去
  • file-loader:加载文件类型的资源
  • url-loader:和file-loader类似,能再文件很小的情况下,将文件以base64的方式注入到代码中。
  • image-loader:加载并压缩图片文件
  • babel-loader:把es6转化为es5
  • source-map-loader:加入额外的sourceMap文件,以便调试
  • eslint-loader:通过eslint检查代码规范

前端为什么要进行构建打包:

代码层面:编译高级语法,减小代码输出体积,代码检错
研发层面:形成统一高效的构建流程。

babel和webpack的区别

  • babel只是js语法的编译,不负责模块
  • webpack打包构建工具,负责模块的链接,以及模块文件的编译,webpack中页会使用babel来对js模块进行编译。