Skip to content

工程化?

当项目规模变大时,就会出现很多问题,这就是工程化要解决的问题。

出现的问题

全局污染问题

  • 随着JS文件数量和代码量的增加
  • 全局变量同名的几率将会陡然上升
  • 开发人员不得不耗费大量的精力来规避

依赖混入问题

在js中先引入哪个模块,后引入哪个模块

模块化

用来解决全局污染和依赖混入问题

  • 官方标准:ES Module
  • 社区标准:CommonJS、AMD、CMD、UMD
特性AMDCMDUMD
全称Asynchronous Module DefinitionCommon Module DefinitionUniversal Module Definition
依赖声明依赖前置(开头声明)依赖就近(用时 require)兼容多种方式
加载方式异步异步根据环境决定(异步或同步)
主要用途浏览器模块化浏览器模块化(已式微)通用库,多环境兼容
代表工具RequireJSSea.js无特定工具,是一种写法模式
是否主流曾主流,现逐渐被 ES Module 取代已不常用仍广泛用于第三方库兼容

包管理

模块化出现后,出现了大量的第三方库,这么多第三方库,如何管理?

  • npm
  • yarn
  • pnpm

By Modify.