Webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler)。当运行 webpack 时,它会递归地构建一个依赖关系图(dependency graph),其中包含应用程序需要的每个模块,然后将所有这些模块打包成一个或多个 bundle。
特点
- 模块打包:Webpack 能够将模块静态打包成一个或多个 bundle。
- 代码拆分:Webpack 可以将代码拆分成多个小块,按需加载。
- 加载器(Loaders):Webpack 本身只支持 JavaScript,但可以通过加载器(Loaders)来加载其他类型的文件,如 CSS、图片等。
- 插件(Plugins):Webpack 插件可以用于扩展 webpack 功能,如压缩代码、添加环境变量等。
使用场景
- 单页面应用(SPA):Webpack 是构建单页面应用(SPA)的常用工具。
- 多页面应用:Webpack 也可以用于构建多页面应用。
- 模块化开发:Webpack 支持模块化开发,有助于代码组织和维护。
示例
以下是一个简单的 Webpack 配置示例:
const path = require('path');
module.exports = {
entry: './src/index.js',
output: {
filename: 'bundle.js',
path: path.resolve(__dirname, 'dist'),
},
module: {
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
use: {
loader: 'babel-loader',
options: {
presets: ['@babel/preset-env'],
},
},
},
],
},
};