推荐答案
- Entry: 指定 Webpack 打包的入口文件,Webpack 会从这个文件开始构建依赖图。
- Output: 指定 Webpack 打包后的文件输出路径和文件名。
- Loader: 用于处理非 JavaScript 文件,将其转换为 Webpack 能够处理的模块。
- Plugin: 用于执行更广泛的任务,如打包优化、资源管理、环境变量注入等。
- Mode: 指定 Webpack 的构建模式,可以是
development
、production
或none
,不同模式会启用不同的优化策略。
本题详细解读
Entry
Entry 是 Webpack 打包的起点,Webpack 会从这个文件开始,递归地构建依赖图。Entry 可以是一个字符串、数组或对象。如果是对象,可以配置多个入口文件,适合多页面应用。
module.exports = { entry: './src/index.js' };
Output
Output 配置 Webpack 打包后的文件输出路径和文件名。通常需要指定 path
和 filename
两个属性。
module.exports = { output: { path: path.resolve(__dirname, 'dist'), filename: 'bundle.js' } };
Loader
Loader 用于处理非 JavaScript 文件,如 CSS、图片、字体等。Loader 将这些文件转换为 Webpack 能够处理的模块。常见的 Loader 有 babel-loader
、css-loader
、file-loader
等。
-- -------------------- ---- ------- -------------- - - ------- - ------ - - ----- --------- ---- ---------------- ------------- - - - --
Plugin
Plugin 用于执行更广泛的任务,如打包优化、资源管理、环境变量注入等。Plugin 可以在 Webpack 的整个生命周期中插入自定义行为。常见的 Plugin 有 HtmlWebpackPlugin
、MiniCssExtractPlugin
、CleanWebpackPlugin
等。
-- -------------------- ---- ------- ----- ----------------- - ------------------------------- -------------- - - -------- - --- ------------------- --------- ------------------ -- - --
Mode
Mode 指定 Webpack 的构建模式,可以是 development
、production
或 none
。不同模式会启用不同的优化策略。development
模式会启用开发工具,如 source map,而 production
模式会启用代码压缩等优化。
module.exports = { mode: 'production' };