前端构建工具篇:Webpack和Rollup


外圆内方 2020-2-7 webpack rollup

[webpack](https://webpack.js.org/)和[rollup](https://www.rollupjs.com/)

  1. 设计目的
  2. 特点
  3. 该用谁

1. 设计目的

引用他们各自官网的陈述,webpack:打包所有资源;rollup:一个js模块打包器

2. 特点

webpack:

  1. 代码拆分可以将代码根据同步和异步进行拆分,做到按需加载。这意味着可以极大的优化网站首屏加载时间,而不必等到全部下载和解析完成
  2. 转化各种资源的loader,使得原本只能处理js的webpack可以将各种资源转成js模块,使得webpack能处理其他类型资源
  3. 丰富强大的插件系统可以满足使用者各种各样的需求
  4. 兼容CommonJs,AMD等不同形式的模块化方案

rollup:

  1. 极大的利用es6的模块化,不需要通过babel将import转化成CommonJs,从而高效的构建出能直接被其他js库引用的模块(插件支持CommonJs)
  2. Tree-shaking,作为rollup的一大特点。rollup在打包时进行了静态分析,排除任何未实际使用的代码,进一步缩小代码体积(webpack也有,但是rollup做的更好)
  3. 相对于webpack,简介明了的API更让人喜欢

3.该用谁

如果需要处理大量的静态资源,代码拆分,开发应用应该使用webpack,如果只是构建js库rollup还是最佳选择