Webpack -p 与 --mode=生产

fir*_*s0n 6 webpack webpack-4

正如我从 webpack 中得到的,这里 webpack -p将设置繁琐的文档

  1. --define process.env.NODE_ENV="'生产'"对于 DefinePlugin
  2. --optimize-minimize 标志将包含TerserPlugin

正如我从同一个文档中得到的,这里 webpack --mode=production将设置

  1. --define process.env.NODE_ENV="'生产'"对于 DefinePlugin
  2. 更简洁的插件
  3. 标志依赖使用插件
  4. 标记In IncludedChunks插件
  5. 模块串联插件
  6. NoEmitOnErrors插件
  7. 发生顺序插件
  8. SideEffectsFlag插件

(粗体项目是两个不同标志之间的共享行为。)

我应该将其视为--mode=production“完整”版本吗-p?互联网上的一些指南使用-p,其他使用--mode=production,有些甚至两者都使用。

另外,很高兴知道是否--mode=production有任何区别,--mode production因为对我来说,两个版本都工作得很好

另外,这里有一个线程,它说-p“并行运行命令”。这是节点的标志,与-pwebpack 具有相同的名称吗?

我在用webpack ^4.41.2

sdg*_*uck 2

我应该将其视为--mode=production“完整”版本吗-p?互联网上的一些指南使用-p,其他使用--mode=production,有些甚至两者都使用。

根据CLI > 快捷方式 -p下的文档类似于--mode=production

在此输入图像描述

(文档图像取自此处: https: //webpack.js.org/api/cli/#shortcuts

因此,无论使用其中之一(或两者 - 但不建议这样做,因为可能会导致其他人感到困惑),您不应该在 webpack 的输出中看到任何差异。

您可以通过首先使用 运行 webpack 来确认这一点-p,记下输出文件的哈希值,然后使用 执行相同的操作--mode=production并比较哈希值。

这是我使用单个条目文件运行的快速测试,index.js它的作用如下console.log("HELLO")

在此输入图像描述

正如您所看到的,这两种情况的哈希值都是de140f9e5092685464e8

诚然,这里的条目文件可能没有足够大的表面积来具体证明-p--mode production产生相同的结果,但它应该足以演示概述的方法。


另外,很高兴知道是否--mode=production有任何区别,--mode production因为对我来说,两个版本都工作得很好

指定标志及其值的两种方式没有区别:

$ webpack --mode production
$ webpack --mode=production # equivalent to the above
Run Code Online (Sandbox Code Playgroud)

无论 webpack 使用什么标志解析库(甚至可能是定制的),都会为您处理这两种情况,因此您可以采用您喜欢的任何方法。对于 CLI 来说,这是很常见的行为。


另外,这里有一个线程,说 -p“并行运行命令”。这是节点的标志,与 webpack 的 -p 具有相同的名称吗?

我相信-p此处引用的标志是针对npm-run-all库的,因为它在答案中的示例中用作 npm 脚本,如下所示:

"test": "npm-run-all -p -r webdriver-start http-server protractor"
Run Code Online (Sandbox Code Playgroud)