banner
banner
banner
NEWS LETTER

webpack --- 前言

Scroll down

本篇是 webpack 系列的前言:先讲清楚前端工程化的发展脉络与模块化的来龙去脉,再进入后续 webpack 的具体知识。

阶段目标:前端原生项目工程化架构升级

  • 完成前端原生 JS 项目升级:『模块化开发(webpack5)』+『MVVM 框架(vue2 或 vue3)』。
  • 掌握并实践 webpack 各种优化技巧。
  • 掌握 vue2 和 vue3 框架搭建的原理和方法。

一、webpack 核心概念入门

  • bundle、chunk、loader、plugin 等核心概念。
  • 项目源码分析和工程化痛点分析。
  • 从原生到 webpack,从原生框架到 vue 框架。

二、历史回顾

前端工程化的发展,本质是「JS 能力边界」不断扩大、构建工具随之演进的过程。

时间 事件 阶段划分
1995 Brendan Eich 发明 JavaScript 前后端混合(1995-2005):服务端渲染,JS 仅实现交互
2005 Ajax 广泛应用 ↑
2006 jQuery 库出现 ↑
2008 V8 引擎发布,意味着 Ajax 可以在国内应用 ↑
2009 Node.js 发布,开启前端工程化新篇章 前后端分离(2005-2013):借助 Ajax 实现前后端分离、SPA 等新模式
2010 NPM 0.1 版本发布,模块化开发正式诞生 ↑
2013 webpack 1.0 发布、React 1.0 发布 ↑
2014 vue 1.0 发布,前端项目开始工程化,出现 grunt、gulp 等工具 模块化开发(2013-2014):npm 管理模块,webpack 编译打包资源
2015 前端项目开始使用 CommonJS 规范,出现 browserify、webpack 等工具 ↑
2016 前端项目开始使用 ES6 规范,出现 babel 等工具 ↑
2017 前端项目开始使用 vue、react 等框架 模块化 + MVVM(2014-至今):基于 react 或 vue 开发,手写 html 成为历史
2018 前端项目开始使用 vue3、react16 等框架 ↑
2019 前端项目开始使用 TypeScript 等工具 ↑
2020 前端项目开始使用 webpack5 等工具 ↑
2021 前端项目开始使用 vue3 等框架 ↑
2022 前端项目开始使用 vite 等工具 ↑

三、前端模块化是什么?

  • 将复杂程序根据规范拆分成若干模块,一个模块包含输出和输入。
  • 模块的内部实现是私有的,对外暴露接口与其他模块通信。
  • 一个 HTML 页面可以引用的 script 包括:脚本与模块。

四、前端模块化的进化过程

  • 全局 function 模式:简单,但污染全局变量,容易导致命名冲突。
  • 命名空间模式:用对象封装,减少了全局变量,但外部可以修改对象内容。
  • IIFE 模式:用立即执行函数创建闭包,无法解决模块依赖问题。
    • 匿名函数。
    • 最后向 window 暴露该匿名函数的方法和变量。
    • 修改只能调用修改变量对应的 getter 和 setter。
  • CommonJS 模式:用 require 和 module.exports 定义模块,解决了模块的定义问题,但只能在 Node.js 环境运行。
  • AMD 模式:用 define 和 require 定义模块,解决了模块的定义问题,但只能在浏览器环境运行。
  • CMD 模式:用 define 和 require 定义模块,解决了模块的定义问题,但只能在浏览器环境运行。
  • ES6 模块模式:用 import 和 export 定义模块,解决了模块的定义问题,可以在浏览器和 Node.js 环境运行。

参考

其他文章
cover
视频协议
  • 25/08/07
  • 16:15
  • 网络
目录导航 置顶
  1. 1. 阶段目标:前端原生项目工程化架构升级
  2. 2. 一、webpack 核心概念入门
  3. 3. 二、历史回顾
  4. 4. 三、前端模块化是什么?
  5. 5. 四、前端模块化的进化过程
  6. 6. 参考
请输入关键词进行搜索