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()
函数)。
始终在生产中使用此模式!
我正在使用 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()
函数)。
始终在生产中使用此模式!