webpack
webpack适用于大型复杂的前端站点构建,webpack有强大的loader和插件生态,打包后的文件实际上就是一个立即执行函数,这个立即执行函数接收一个参数,这个参数是模块对象,键为各个模块的路径,值为模块内容。立即执行函数内部则处理模块之间的引用,执行模块等,这种情况更适合文件依赖复杂的应用开发。
rollup
rollup适用于基础库的打包,如vue、d3等:Rollup就是将各个模块打包进一个文件中,并且通过Tree-shaking来删除无用的代码,可以最大程度上降低代码体积,但是rollup没有webpack如此多的如代码分割、按需加载等高级功能,其更聚集于库的打包,因此更适合库的开发。