Webpack:
特点:
- 代码分割:
Webpack
有两种组织模块依赖的方式,同步和异步。异步依赖作为分割点,形成一个新的块。在优化了依赖树后,每一个异步区块都作为一个文件被打包。 - Loader(加载器)
Webpack
本身只能处理原生的JavaScript
模块,但是loader
转换器可以将各种类型的资源转换成JavaScript
模块。这样,任何资源都可以成为Webpack
可以处理的模块。 - 智能解析
Webpack
有一个智能解析器,几乎可以处理任何第三方库,无论它们的模块形式是CommonJS
、AMD
还是普通的 JS 文件 - 插件系统
Webpack
有一个功能丰富的插件系统
Rollup:
特点:
- tree-shaking:
通过对代码的静态分析,分析出冗长代码,打包时把这些代码删除,缩小代码体积。(webpack2.0已支持)
所以打包出来的js体积小,可读性高 - 支持ES6模块打包支持
基于es6,比Webpack
和Browserify
使用的CommonJS
模块机制更高效。
使用场景:
打包应用用webpack,打包库用Rollup