Webpack: 前端资深构建工具

概述

  • 如果你是一名前端工程师,相信之前或多或少听过、用过 Webpack 这一构建工具,它能够融合多种工程化工具,将开发阶段的应用代码编译、打包成适合网络分发、客户端运行的应用产物
  • 如今,Webpack 已经深深渗入到前端工程的方方面面,几乎已经成为我们日常工作绕不过去的必备基础设施之一
  • 问题是,我们为什么需要使用这种非常复杂的构建工具?我认为最大的原因是:时代变了

构建工具的发展

  • 在远古时代,我们只能用原生 JavaScript(ES5)、CSS、HTML 方式编写页面代码,开发与生产环境代码基本一致,开发与运行效率都非常低;
  • 其次,页面的图片、代码、CSS 等资源都能且只能通过 imgscriptlink 等标签插入到页面中,我们需要非常精细地管理、设计各个标签出现的位置、顺序,这也会占用我们非常多的精力与注意力
  • 直到 2009年 Node 与 RequireJS 的出现才打破这一僵局,让我们在代码被放到浏览器运行起来之前,有机会做一些预处理工作 —— 开发与生产环境终于有了隔离管理的实现方案
  • 再往后,出现了越来越多解决具体问题的效率工具,我们开始尝试使用 Babel、TypeScript、CoffeeScript 等,绕过 ES5 诸多低效语言特性、陷阱;尝试通过 Less、Sass、Stylus 等工具,为页面样式开发引入逻辑运算、数学运算、嵌套、继承等结构化语言特性,等等
  • 这些工程化工具能不同程度弥补浏览器、语言、规范本身的设计缺陷,我们终于不需要再关注一些低效的技术细节、Trick,将更多注意力放在业务代码上,以更高效的方式方法编写出越来越复杂、庞大的 Web 应用
  • 这个阶段前端领域可谓蓬勃发展,前端工程师的能力边界也在不断扩大,但却引来了另一个问题:如何管理这些工具与工具背后的工程化逻辑?我们需要一套足够开放,能融合诸多工程化工具,彻底抹平开发与生产环境差异的一体化工程方案,这也正是 Webpack 需要解决的问题

为什么是 Webpack?

  • Webpack 是一种用于构建 JavaScript 应用程序的静态模块打包器,它能够以一种相对一致且开放的处理方式,加载应用中的所有资源文件(图片、CSS、视频、字体文件等),并将其合并打包成浏览器兼容的 Web 资源文件。
  • 注意,上面说的“一致且开放”的加载模型,这在当时算的上是非常 Breaking Change 的设计!

  • Webpack 之前社区虽然已经实现了许多模块打包器,例如 GulpGruntRequireJSBrowserifyClosure Comp

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wang's Blog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值