[webpack](https://webpack.js.org/)和[rollup](https://www.rollupjs.com/)
- 设计目的
- 特点
- 该用谁
1. 设计目的
引用他们各自官网的陈述,webpack:打包所有资源;rollup:一个js模块打包器
2. 特点
webpack:
- 代码拆分可以将代码根据同步和异步进行拆分,做到按需加载。这意味着可以极大的优化网站首屏加载时间,而不必等到全部下载和解析完成
- 转化各种资源的loader,使得原本只能处理js的webpack可以将各种资源转成js模块,使得webpack能处理其他类型资源
- 丰富强大的插件系统可以满足使用者各种各样的需求
- 兼容CommonJs,AMD等不同形式的模块化方案
rollup:
- 极大的利用es6的模块化,不需要通过babel将import转化成CommonJs,从而高效的构建出能直接被其他js库引用的模块(插件支持CommonJs)
- Tree-shaking,作为rollup的一大特点。rollup在打包时进行了静态分析,排除任何未实际使用的代码,进一步缩小代码体积(webpack也有,但是rollup做的更好)
- 相对于webpack,简介明了的API更让人喜欢
3.该用谁
如果需要处理大量的静态资源,代码拆分,开发应用应该使用webpack,如果只是构建js库rollup还是最佳选择