在 模块化编程 中,开发人员将程序分解成称为模块的离散功能块。
每个模块的表面积都比完整程序小,这使得验证、调试和测试变得微不足道。编写良好的模块提供了可靠的抽象和封装边界,因此每个模块在整个应用程序中都具有连贯的设计和明确的目的。
Node.js 自诞生之日起就支持模块化编程。然而,在 Web 上,对模块的支持一直进展缓慢。存在多种工具支持 Web 上的模块化 JavaScript,它们具有各种优点和局限性。Webpack 基于从这些系统中汲取的经验教训,并将模块的概念应用于项目中的任何文件。
与 Node.js 模块 相比,webpack 模块可以通过多种方式表达其依赖关系。以下是一些示例
import
语句require()
语句define
和 require
语句@import
语句 在 css/sass/less 文件中。url(...)
或 HTML <img src=...>
文件。Webpack 原生支持以下模块类型
除此之外,webpack 还支持通过加载器来处理用各种语言和预处理器编写的模块。加载器告诉 webpack 如何处理非原生模块并将这些依赖项包含到您的包中。webpack 社区已经为各种流行的语言和语言处理器构建了加载器,包括
以及许多其他!总的来说,webpack 提供了一个强大而丰富的 API 用于自定义,允许您将 webpack 用于任何堆栈,同时保持对您的开发、测试和生产工作流程不加意见。