构建工具

为什么要使用构建工具?

(1) JavaScript和CSS的依赖问题

在开发中,经常出现的另一个问题,就是JavaScript和CSS的依赖问题;简单的说就是JavaScript和CSS的在页面中的顺序问题。

经常会造成CSS没起作用,JavaScript的某个变量和方法找不到。

有很多情况都是因为引入JavaScript或者CSS的顺序不对,虽然我们可以使用一些RequireJS之类的模块管理,但是依然在很多情况下需要引入不同的文件,尤其是CSS没有一个好的模块化管理的组件。

那么我们就需要有一个统一的地方来管理JavaScript和CSS的顺序问题,而构建工具可以大大减少此类问题。

(2) 性能优化

一般浏览器请求的文件越多越耗时,请求的文件越大越耗时,尤其是为了前端项目的代码更清晰,结构更合理,我们采用了MVC,MVVM等很多架构分解出了很多JS文件,无疑又拖慢了网页的速度。

文件合并

浏览器需要下载多个JS文件,而浏览器是有并发限制,也就是同时并发只能下载几个文件,假如浏览器并发数是5,你有30个JS文件,而每5个需要2S, 那么你光下载JS文件都需要12S。

那么网页的性能可想而知,所以我们需要合并多个文件以减少文件的数量。

文件压缩

我们知道文件越大,下载越慢,而针对JavaScript和CSS,里面的空格,换行这些都是为了让我们读代码时更容易阅读,但是对机器来说,这些对它没有影响。

所以为了减少文件大小,一般的情况我们都会用工具去掉空格和换行,有时候我们还会用比较短的变量名(记住这个要让工具最后压缩时做,而源代码一定要保证命名可读性) 来减少文件大小。

而所有的前端构建工具都具有文件合并和压缩的功能。

提高开发效率

Vendor前缀

在CSS3使用越来越多的时候,我们都知道一些CSS3的新特性,在不同的浏览器中,CSS有不同的前缀,如果我们手工添加将会很繁琐,而如果使用构建工具,很多构建工具可以自动给我添加CSS的Vendor前缀。

单元测试

JavaScript的单元测试在使用MVC或者MVVM的框架后,变得越来越容易,而单元测试是质量保证的一个很重要的手段。

所以在提交之前,使用构建工具自动跑一遍我们的单元测试是非常有必要的,能进一步检测你的项目的健壮性和容错能力。

代码分析

我们写的JavaScript很多时候会有一些潜在的bug, 比如忘了添加分号,某个变量没有等等,使用一些JavaScript的代码分析工具,可以很好的帮我们检查一些常见的问题。

版本升级

比如第一版本使用npm之类来引用前端JavaScript和CSS的第三方库,那么如果版本升级,添加移除等都用手工来修改HTML的话。

一来耗时二来容易出错,尤其是开发版本和生产版本之间切换会有很多问题,那么使用前端构建工具可以很好的解决这些问题。

常见的前端构建工具有Gulp、Grunt、Webpack等,我们接下来一一学习和了解他们。

什么是webpack?

webpack是一个模块打包器(bundler)

在webpack的概念中,前端的所有资源文件(js/css/json/img/sass/less/…)都会作为模块来被处理,webpack会根据模块的依赖关系进行静态分析,生成对应的静态资源,最终打包部署上线。

webpack干的工作就如下图所示:
构建工具_第1张图片

你可能感兴趣的:(构建工具)