webpack.config.js 文件中的模式参数有什么作用?

What does the mode parameter do in the webpack.config.js file?

我正在使用 Webpack 开发一个项目,我碰巧注意到对象中的一个参数叫做 mode

根据文档,它有两个可能的值(都是 string)。一个是development,一个是production.

下面是我的 webpack.config.js 文件的一部分。

module.exports = {
  mode: "development",
};

我已经可以推断出 development 会更慢,而 production 会更快。但是,是什么让 development 中的代码变慢?

生产模式用于优化所有JS文件,而开发模式保持JS文件原样。

以下是 Webpack 根据您的 mode.

编译您的代码的差异

development模式

此模式使用 eval() 函数执行字符串中的所有代码。它不会使它变小,除了将所有代码放在一行之外。

eval() 函数比正常 JavaScript 慢(引用自下面的 MDN),因此 不建议在生产中使用它

来自 MDN:

eval() is also slower than the alternatives, since it has to invoke the JavaScript interpreter, while many other constructs are optimized by modern JS engines.

production模式

production 模式下,Webpack 将适当地使您的代码体积更小(不使用 eval() 函数)。

始终在生产中使用此模式!