Webpack 4 также выпущен в течение некоторого времени, хотя в официальных документах не было завершено руководство по обновлению, часть разработки подключаемого модуля адаптера webpack 4 также все еще продолжается, но для старших инженеров по настройке интерфейса мачете долгий голод и жажда, поэтому неофициальный уровень литров (cai) (keng) направляет ее.
Мне некогда смотреть твой бред, дай конфигурацию
Webpack 4 сделал много улучшений, я выберу некоторые моменты, которые меня больше беспокоят, чтобы расширить
0CJS
С лайкомparcelПопулярность таких готовых инструментов упаковки с нулевой конфигурацией подвергалась критике за то, что они сложны в использовании, сложны для понимания и сложны в настройке. Webpack явно чувствовал давление. В версии 4.0 значения по умолчанию были добавлены в некоторые конфигурации, а введениеmode
concept, который предоставляет две разные конфигурации по умолчанию для среды разработки и рабочей среды, что значительно упрощает настройку webpack. В версии 4.0 вам даже не нужно настраивать его для использования (хотя это не очень полезно).
По умолчанию
1 |
module.exports = { |
Представлен в веб-пакете 4mode
Требуется установить (если не поставить, будет сигнализация), можно пройтиwebpack --mode ...
установить или черезwebpack.config.js
устанавливать.
1 |
module.exports = { |
mode
Также для упрощения элементов конфигурации, различныеmode
Для нас будут установлены разные конфигурации по умолчанию, поэтому нам не нужно настраивать их одну за другой.
Режим разработки больше фокусируется на опыте разработки:
- Лучше для отладки браузера
- Более быстрая инкрементная компиляция
- Более подробное сообщение об ошибке
Генеративный режим больше связан с пользовательским опытом:
- Производительность (размер файла, производительность во время выполнения, скорость упаковки)
Подробные инструкции см.эта статья
Загрузчик и плагин
На самом деле изменений в загрузчике нет, тот загрузчик, который я использую, можно использовать сразу после обновления до последней версии, а некоторые даже не нужно обновлять. Самым большим изменением является плагин.
Webpack 4 использует новую систему подключаемых модулей, поэтому предыдущие подключаемые модули в основном необходимо изменить, так как же эти подключаемые модули в настоящее время поддерживают webpack 4?
-
extract-text-webpack-plugin@4.0.0-beta.0
issue listКак видите, проблем еще много.
Проблема, с которой я сталкиваюсь, заключается в том, что в сотрудничествеsplitChunks
(будет упомянуто позже), будет сгенерирован css-файл размером 0 КБ,issue.
я уже поднимал этот вопросPR.официальныйmini-css-extract-plugin, но эта проблема больше, не поддерживает HMR, не поддерживает
contenthash
, так что это в основном бесполезно на данный момент. -
Этот плагин в настоящее время поддерживает webpack 4, но его собственный плагин может не поддерживать его, на это нужно обратить внимание при обновлении.
-
uglifyjs-webpack-plugin
Этот плагин также в настоящее время поддерживает webpack 4. по факту
production
В режиме код сжимается по умолчанию. Конечно, если у вас есть более подробные требования к настройке, вы можете использовать этот плагин.
RIP CommonsChunkPlugin
Вышеупомянутые изменения являются некоторыми сторонними плагинами, и самое большое изменение и самое большое влияние — это использование веб-пакета 4.optimization.splitChunks
замененыCommonsChunkPlugin
, и поддержка была удаленаCommonsChunkPlugin
, так что эту часть сложнее перенести.
Для всех инженеров по конфигурации,CommonsChunkPlugin
Это должно быть очень знакомо, мы в основном используем его для извлечения общих частей в коде,webpack runtime
код, такой какchunkhash
, чтобы реализовать наилучшую стратегию кэширования. И эта часть тоже плохо поддерживается вебпаком.issue, до сих пор не решен. Если вас интересует этот вопрос, вы можете прочитать этостатья. Я не буду раскрывать это здесь, просто вставьте копиюCommonsChunkPlugin
конфиг эпохи для решения этой проблемы
1 |
module.exports = { |
Конфигурация после обновления до webpack 4
1 |
module.exports = { |
ты сможешьздесьСмотрите полную конфигурацию.
Миграция на самом деле заняла много времени, с одной стороны мы подняли вопросы по вебпаку, а с другой стороны мы подняли проблемы и PR по плагину wepback.
Я был впечатлен временем, которое потребовалось Wepback для устранения проблемы, но ответ плагина был относительно медленным, и для получения отзыва может потребоваться несколько дней.
Короче говоря, я надеюсь, что эта статья поможет студентам, которые обновляются и планируют обновиться.