Webpack核心简介
webpack 是一个现代 JavaScript 应用程序的静态模块打包器
entry
entry 属性指定一个入口起点(或多个入口起点)。默认值为 ./src。
单个入口(简写)语法
用法:entry: string | Array
1 | const config = { |
对象语法
用法:entry: {[entryChunkName: string]: string|Array}
1 | // entry: string | Array |
output
output 属性指定 webpack 在哪里输出它所创建的包,以及如何命名这些文件,默认值为 ./dist。
单入口用法
1 | const path = require("path"); |
多入口用法
1 | { |
loader
loader 熟悉指定 webpack 解析那些非 JavaScript 文件,并转换为 webpack 能够处理的有效模块。
1 | const path = require("path"); |
plugins
插件则用于执行范围更广的任务。插件的范围包括,从打包优化和压缩,一直到重新定义环境中的变量。插件接口功能极其强大,可以用来处理各种各样的任务。
1 | const HtmlWebpackPlugin = require("html-webpack-plugin"); // 通过 npm 安装 |
提高效率的插件
插件 | 说明 |
---|---|
webpack-dashboard | 可以更友好的展示相关打包信息。 |
webpack-merge | 提取公共配置,减少重复配置代码 |
speed-measure-webpack-plugin | 简称 SMP,分析出 webpack 打包过程中 Loader 和 Plugin 的耗时,有助于找到构建过程中的性能瓶颈 |
size-plugin | 监控资源体积变化,尽早发现问题 |
HotModuleReplacementPlugin | 模块热替换 |
mode
通过设置模式来启用相应模式下的 webpack 内置的优化
1 | module.exports = { |
支持以下字符串值:
选项 | 描述 |
---|---|
development | 会将 process.env.NODE_ENV 的值设为 development。启用 NamedChunksPlugin 和 NamedModulesPlugin。 |
production | 会将 process.env.NODE_ENV 的值设为 production。启用 FlagDependencyUsagePlugin, FlagIncludedChunksPlugin, ModuleConcatenationPlugin, NoEmitOnErrorsPlugin, OccurrenceOrderPlugin, SideEffectsFlagPlugin 和 UglifyJsPlugin. |