内容简介: mode(模式)是webpack4.0.0新增的配置,用来指定webpack使用对应模式的内置优化;它有三个可选模式:production、development、none;默认为production。下面通过一段代码分别演示一个每一个模式打包输出的文件内容:
简介
mode(模式)是webpack4.0.0新增的配置,用来指定webpack使用对应模式的内置优化;它有三个可选模式:production、development、none;默认为production。
| 选项 | 描述 |
|---|---|
| development | 通过DefinePlugin插件将 process.env.NODE_ENV 的值设为 development。启用 NamedChunksPlugin 和 NamedModulesPlugin。 |
| production | 通过DefinePlugin插件将 process.env.NODE_ENV 的值设为 production。启用 FlagDependencyUsagePlugin, FlagIncludedChunksPlugin, ModuleConcatenationPlugin, NoEmitOnErrorsPlugin, OccurrenceOrderPlugin, SideEffectsFlagPlugin 和 TerserPlugin. |
| none | 通过DefinePlugin插件将 process.env.NODE_ENV 的值设为 node。使用默认的优化项。 |
演示
下面通过一段代码分别演示一个每一个模式打包输出的文件内容: 源码地址
第一步:编写入口文件和依赖代码
// webpack@4.32.2系列教程/demo02-mode/src/role.js
export default class Role {
constructor(name, skill) {
this.name = name;
this.skill = skill;
}
}
// webpack@4.32.2系列教程/demo02-mode/src/index.js
import Role from './role'
const role = new Role('乔峰', '降龙十八掌');
console.log(role);
console.log('process.env.NODE_ENV: ', process.env.NODE_ENV);
第二步:编写webpack配置 & 启动webpack
// webpack@4.32.2系列教程/demo02-mode/scripts/build.js
const webpack = require('webpack');
// 创建编译器对象
const compiler = webpack({
// mode模式:webpack4.0.0新增配置,用来指定webpack使用相应模式的内置优化。
// mode: 'development' // 会将 process.env.NODE_ENV 的值设为 development。启用 NamedChunksPlugin 和 NamedModulesPlugin。
// mode: 'production' // 会将 process.env.NODE_ENV 的值设为 production。启用 FlagDependencyUsagePlugin, FlagIncludedChunksPlugin, ModuleConcatenationPlugin, NoEmitOnErrorsPlugin, OccurrenceOrderPlugin, SideEffectsFlagPlugin 和 UglifyJsPlugin.
mode: 'none' // 使用默认优化项
});
// 启动webpack
compiler.run((err, stats) => {
if (err) {
console.error(err);
return;
}
// 输出编译成功信息
console.log(stats.toString({ colors: true }));
});
第三步:cd到demo02-mode文件夹下,运行node scripts/build.js
mode: none 打包输出的main.js文件内容
mode:development 打包输出的main.js文件内容
mode:production 打包输出的main.js文件内容
小结:可以看到每一种模式,打包后输出的代码都不一样,我们平时开发使用development模式,当代码需要发布上线时使用production模式。
注意:上面说的process.env.NODE_ENV并不是Node.js的process.env.NODE_ENV运行环境变量,它其实是通过DefinePlugin插件设置的一个webpack全局变量。
配置
mode其实可以理解为webpack4.0.0 提供一个语法糖,它的三个可选项,其实就是三套不同的webpack默认配置而已,以下是每一种模式对应的webpack配置:
mode: development
mode: production
mode: none
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
数据挖掘
(美)Jiawei Han、(加)Micheline Kamber、(加)Jian Pei / 范明、孟小峰 / 机械工业出版社 / 2012-8 / 79.00元
数据挖掘领域最具里程碑意义的经典著作 完整全面阐述该领域的重要知识和技术创新 这是一本数据挖掘和知识发现的优秀教材,结构合理、条理清晰。本书既保留了相当篇幅讲述数据挖掘的基本概念和方法,又增加了若干章节介绍数据挖掘领域最新的技术和发展,因此既适合初学者学习又适合专业人员和实践者参考。本书视角广阔、资料翔实、内容全面,能够为有意深入研究相关技术的读者提供足够的参考和支持。总之, 强烈推荐......一起来看看 《数据挖掘》 这本书的介绍吧!