官网链接:https://webpack.js.org/concepts/module-resolution/
在模块化编程中,开发者将程序分解成称为 module 的离散功能 chunks
每个模块相对于一个完整的程序有更小的接触面
Node.js 从一开始就支持模块化编程
在 Web 中,有很多支持模块的工具,Webpack 从中学习到很多并应用
一、何为 Webpack 模块
与 Node.js 相比,webpack 模块有多种表达方式,下面是一些例子
- ES2015 的 import 语句
- CommonJS 的 require() 语句
- AMD 的 define 和 require 语句
- 在 css/sass/less 文件中的 @import 语句
- stylesheet 中 image 的 url(..) 或 HTML 中
<img src=...>
文件
二、支持的模块类型
- ECMAScript modules
- CommonJS modules
- AMD modules
- Assets
- WebAssembly modules
通过 loader,webpack 支持多种使用各种语言和预处理器写的模块
Loaders 向 webpack 描述了怎样处理非原生模块和将这些依赖添加到 bundles
webpack 社区已经为各种流行的语言和语言处理器创建了很多 loaders,包括
- CoffeeScript
- TypeScript
- ESNext(Babel)
- Sass
- Less
- Stylus
- Elm
还有很多其他的没列举完。总的来说,Webpack 提供了可定制、丰富的 API 让我们在任何技术栈中使用 webpack,同时支持在开发、测试、生产工作流中保持无侵入性。
「@浪里淘沙的小法师」