Webpack 4 также выпущен в течение некоторого времени, хотя в официальных документах не было завершено руководство по обновлению, часть разработки подключаемого модуля адаптера webpack 4 также все еще продолжается, но для старших инженеров по настройке интерфейса мачете долгий голод и жажда, поэтому неофициальный уровень литров (cai) (keng) направляет ее.
Мне некогда смотреть твой бред, дай конфигурацию
Webpack 4 сделал много улучшений, я выберу некоторые моменты, которые меня больше беспокоят, чтобы расширить
0CJS
С лайкомparcelПопулярность таких готовых инструментов упаковки с нулевой конфигурацией подвергалась критике за то, что они сложны в использовании, сложны для понимания и сложны в настройке. Webpack явно чувствовал давление. В версии 4.0 значения по умолчанию были добавлены в некоторые конфигурации, а введениеmodeconcept, который предоставляет две разные конфигурации по умолчанию для среды разработки и рабочей среды, что значительно упрощает настройку 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 для устранения проблемы, но ответ плагина был относительно медленным, и для получения отзыва может потребоваться несколько дней.
Короче говоря, я надеюсь, что эта статья поможет студентам, которые обновляются и планируют обновиться.