Webpack -p vs --mode = production - PullRequest
       2

Webpack -p vs --mode = production

2 голосов
/ 29 января 2020

Как я получил из веб-пакета громоздкая документация здесь webpack -p установит

  1. - определить process.env.NODE_ENV = "'production'" для DefinePlugin
  2. - флаг оптимизации-минимизации, который будет включать TerserPlugin

Как я понял из той же документации здесь webpack --mode=production установит

  1. - определить process.env .NODE_ENV = "'production'" для DefinePlugin
  2. TerserPlugin
  3. FlagDependencyUsagePlugin
  4. FlagIncludedChunksPlugin
  5. ModuleConcatenationlu
  6. NoEmitOnErrorsPlugin
  7. OccurrenceOrderPlugin
  8. SideEffectsFlagPlugin

(жирные элементы - это общее поведение двух разных флагов.)

Считаю --mode=production как "полная" версия -p? Некоторые руководства по inte rnet используют -p, другие - --mode=production, а некоторые даже используют оба из них. Также было бы здорово узнать, есть ли разница между --mode=production и --mode production, потому что для меня обе версии работают абсолютно нормально

Также здесь есть нить , которая говорит, что -p «Выполнять команды параллельно.» Это флаг для узла, имя которого совпадает с -p для веб-пакета?

Я использую webpack ^4.41.2

1 Ответ

2 голосов
/ 29 января 2020

Должен ли я считать --mode=production "полной" версией -p? Некоторые руководства по inte rnet используют -p, другие - --mode=production, а некоторые даже используют оба.

В соответствии с документацией CLI> Ярлыки -p аналогичен --mode=production:

enter image description here

(Изображение документов взято отсюда: https://webpack.js.org/api/cli/#shortcuts)

Таким образом, независимо от того, используете ли вы одно или другое (или оба - но это не рекомендуется, поскольку это может привести к путанице с другими), вы не должны видеть никакой разницы в выводе веб-пакета.

Вы можете подтвердить это, запустив сначала веб-пакет с -p, отметив хэши выходных файлов, а затем сделав то же самое с --mode=production и сравнив хэши.

Вот быстрый тест, который я запустил, используя один файл ввода index.js, который просто делает console.log("HELLO"):

enter image description here

Как вы можете видеть ha sh в обоих случаях это de140f9e5092685464e8.

. Допустим, что входной файл здесь может иметь недостаточно большую площадь поверхности, чтобы конкретно доказать, что и -p, и --mode production дают одинаковый результат, но этого должно быть достаточно для демонстрации. описанный подход.


Также было бы здорово узнать, есть ли разница между --mode=production и --mode production, потому что для меня обе версии работают абсолютно нормально

Нет никакой разницы между двумя способами указания флагов и их значений:

$ webpack --mode production
$ webpack --mode=production # equivalent to the above

Независимо от того, какой веб-пакет библиотеки синтаксического анализа флагов использует (может быть даже на заказ), вы позаботитесь о любом случае для вас, так что вы можете выбрать любой подойти к вам пр EFER. Это довольно распространенное поведение для CLI.


Кроме того, здесь есть поток, который говорит, что -p "Запускать команды параллельно". Это флаг для узла, который имеет то же имя, что и -p для веб-пакета?

Я считаю, что флаг -p, на который здесь ссылаются, предназначен для библиотеки npm-run-all, как он используется в примере в ответе как сценарий npm, следующим образом:

"test": "npm-run-all -p -r webdriver-start http-server protractor"
...