Coursera 笔记

Module 02 · Introduction to Automated Build Tools (Webpack)自动化构建工具(Webpack)简介

Introduction to Web Build and Automated ToolsWeb构建与自动化工具简介

Coursera ↗

观看完本视频后,您将能够:

  • 定义 构建自动化(Build Automation)
  • 识别 构建自动化的好处
  • 讨论 在特定情况下使用自动化Web构建工具和打包工具
  • 描述 一些流行的Web构建工具和打包工具

什么是构建自动化?

构建自动化是准备源代码用于生产环境的过程,使用户能够舒适地与之互动。它可能包括:

  • 编译 代码
  • 数据库模式更新
  • 创建安装程序或可执行文件 等

自动化有助于标准化构建、加速构建过程并减少手动操作中的错误。构建自动化的流程包括:

  • 自动获取源代码
  • 将代码编译成二进制代码
  • 执行自动化测试
  • 将代码发布到共享的集中式代码库中

构建自动化与持续集成(CI)

构建自动化对于持续集成(Continuous Integration,简称CI)至关重要。持续集成是一种开发实践,要求开发人员在一定时间内多次将代码集成到共享代码库中,随后通过自动化构建和自动化测试进行验证。由于这种频繁的集成,错误能够快速且轻松地被发现。


自动化构建的挑战与解决方案

假设您有一个300行的JavaScript脚本,只需将旧的<script>标签插入到页面中。随着页面功能的增加,您的脚本文件可能扩展到10000行。这时,多个开发人员在同一个文件中工作会使得管理变得困难。

传统的代码管理问题

  • 多个脚本标签: 将代码拆分成多个脚本并放置在特定顺序中,以确保实用函数可用,但这种做法并不理想,尤其是在需要频繁修改文件时。
  • 依赖管理: 通过标明每个文件需要的其他文件(依赖),可以改善代码管理。

自动化构建工具与打包工具的功能

在这种情况下,自动化构建工具和打包工具能够解决这些问题。自动化构建工具能够有效管理文件依赖和优化构建流程。


JavaScript构建工具的功能

使用这些构建工具,您的JavaScript代码及其依赖将被准备好,供浏览器使用。其功能包括:

功能 说明
转换(Transformation) 将各种形式的JavaScript/TypeScript及其他资源(如HTML、CSS、图像)转化为浏览器兼容的标准包。
打包(Bundling) 将多个源组件编译为几个浏览器友好的JavaScript包。
压缩(Minification) 通过删除冗余代码、重命名变量等方法,减少JavaScript包的大小。
提供服务(Serving) 在开发模式下向浏览器提供内容,并支持“热更新”(Hot Reloading)等功能。

构建工具的差异

并非所有工具都能完成所有这些步骤,也并非以相同方式执行这些任务。但是,这些功能是大多数构建工具解决的核心问题。


构建自动化的五大好处

构建自动化带来五个主要好处:

1.提高生产力

构建自动化可以快速提供反馈,意味着开发人员花更少的时间处理工具或过程,而将更多时间用于提供价值。

2.加速交付

构建自动化消除了不必要的任务,帮助您更快地识别问题,加速交付过程。

3.提升质量

构建自动化通过帮助您更快地发现和解决问题,避免出现不良构建,从而提高产品质量。

4.记录维护

构建自动化使您能够保持文件和更改历史的完整记录,帮助您追踪问题的根源。

5.节省时间与金钱

通过提高生产力、加速交付和提升质量,构建自动化帮助您节省了时间和金钱。


流行的Web构建工具与打包工具

接下来,让我们探索一些流行的Web构建工具和打包工具,这些工具在Web开发中非常有用:

1. Grunt

Grunt 是前端开发者使用的首个广为人知的任务运行器。其流行得益于插件架构。由于插件通常较为复杂,理解配置的过程可能会很具挑战性。

2. Gulp

Gulp 是一个基于Node流构建的JavaScript任务运行器。与Grunt不同,Gulp 直接处理实际代码,而不是依赖插件配置。其最大的特点是使用Node流,将一个任务的输出作为下一个任务的输入。

3. Browserify

Browserify 是一个允许直接在浏览器中使用Node.js模块的构建工具。它允许您将所有JavaScript模块打包成一个文件,并通过<script>标签引用。Browserify可以与Gulp结合使用,也有一些小型的转换工具可以扩展其功能。

4. Webpack

Webpack 提供了比Browserify更强大的核心功能,能够开箱即用。它还可以通过特定的加载器和插件进行扩展,提供了更多的灵活性,能够解决模块解析和构建中的问题。

5. npm(Node包管理器)

npm 是JavaScript的包管理工具,也是Node.js环境中的默认包管理器。它由命令行客户端和一个包含免费和付费私有包的在线数据库组成。用户可以下载和分享存储在注册表中的JavaScript模块。

6. RequireJS

RequireJS 是一个JavaScript库和文件加载器,负责管理JavaScript文件之间的依赖关系并提升代码质量。它支持异步模块加载,并能将模块合并和压缩为单个脚本文件,提升加载速度。


总结

在本视频中,您学习了:

  • 构建自动化 及其过程
  • 在特定情况下使用 自动化Web构建工具和打包工具
  • 一些重要的 JavaScript构建工具的功能
  • 构建自动化的 五大好处
  • 一些流行的 Web构建工具和打包工具 例如:Grunt, Gulp, Browserify, Webpack, npm, RequireJS

这些工具和方法将帮助您高效地进行Web开发并提升项目质量!