Skip to content

Webpack vs Rollup

官方定义

  • Rollup 是一个 JavaScript 模块打包器,可以将小块代码编译成大块复杂的代码,例如 library 或应用程序

  • Webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler)。当 webpack 处理应用程序时,它会递归地构建一个依赖关系图(dependency graph),其中包含应用程序需要的每个模块,然后将所有这些模块打包成一个或多个 bundle。

应用场景

使用Rollup的开源项目:

  • vue
  • vuex
  • vue-router

使用webpack的项目:

  • elemnt-ui
  • mint-ui
  • vue scaffold

结论

  • Rollup 偏向应用于 js 库,只是 js 代码,希望做 ES 转换,模块解析;
  • Webpack 偏向应用于前端工程, 涉及到 css、html,涉及到复杂的代码拆分合并;
  • 对于 应用 使用 Webpack,对于 类库 使用 Rollup。
  • Webpack 对于代码分割和静态资源导入有着“先天优势”,并且支持热模块替换(HMR);
  • Rollup对于代码的Tree-shaking和ES6模块有着算法优势上的支持,能让打包文件体积很小。