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. |