Modules(模块)1
在模块化程序设计中,开发者分解程序为若干功能上离散的分块,称之为一个模块。
每个模块各自有小于完整程序的功能,琐碎到做验证、调试、测试等。写的好的模块会提供坚实的抽象和封装边界,这样整个应用下的每个模块才有连贯的设计和清晰的目标。
Node.js几乎从诞生开始就已经支持了模块化程序设计。但是在web上,对模块的支持来的太迟了。Web上存在很多工具支持模块化的JavaScript,带来了不同的好处,也受到不同的限制。Webpack建立在从这些系统学到的教训上,将模块的概念应用到项目中的任意文件上。
什么是webpack模块
与Node.js模块不同,webpack模块能用多种方法来表达它们的依赖。一些样例如下:
- 一个ES2015
import
声明 - 一个CommonJS
require()
声明 - 一个AMD
define
和require
声明 - 一个css/sass/less文件中的
@import
声明 - 样式表(
url(...)
或html(<img src=...>)
文件中的图片url
ℹ️Webpack 1要求特定的loader来转换ES2015
import
,但是在webpack 2中是立即可用的。
支持的模块类型
Webpack通过loaders支持很多种语言和预处理器写的模块。Loaders向webpack描述如何处理非JavaScript模块,如何把这些依赖引入到你的bundles里面。Webpack社区已经为众多流行语言和语言预处理器建造了loaders,包括:
还有更多其他的!总的来说,webpack为定制化(customization)提供了强大和丰富的API,使用户可以在任何情况下使用webpack,同时对你的开发,测试和生产工作流保持客观。
要获取完整的列表,可查看loaders列表或编写你自己的loader。
1. https://webpack.js.org/concepts/modules/ ↩