现在项目构建已经成了整个项目开发流程中不可或缺的一部分,社区内的构建方案也处于一个百花齐放的状态,通过2017年 JavaScript 明星项目我们可以清晰了解社区内比较火的构建方案。本文的主要目的是基于现在商家&小二端开发场景,选取webpack、rollup及parcel三个热门项目,进行简单地原理剖析,同时选用一个实例项目来对三个构建工具进行横向对比。
rollup也是近几年比较火的构建工具,他直接对标ES6的模块模型,并首先提出tree-shaking的思想,可以静态分析代码中的import,排除实际并未使用的代码,这样可以有效控制打包文件的大小,不过现在npm上大部分包还都是提供的Commonjs版本的,因此无法享受到tree-shaking带来的红利,不过已经有好多优秀的开源工具库,类似React、Vue、D3、threejs等等已经开始用rollup来作为构建工具。尽管rollup支持应用级构建,但是更多地大家还是推荐应用级使用webpack,工具级使用rollup。
parcel是去年才推出的新的前端资源构建工具,并在短时间内达到14K个star的关注度,一跃成为2017年构建类工具的冠军。parcel官方宣传的最主要的特点就是零配置及速度快,并在文档中描述了parcel与其他主流构建工具设计上的不同:
parcel的工作原理就比较清晰,大致可以分为以下以下几步: