Spec-Zone.ru › webpack 5

Манифест

В типичном приложении или сайте, созданном с помощью webpack, есть три основных типа кода:

  1. Исходный код, написанный вами и, возможно, вашей командой.
  2. Любой код сторонней библиотеки или «вендорский» код, от которого зависит ваш исходный код.
  3. Запуск webpack и манифест, которые обеспечивают взаимодействие всех модулей.

Эта статья будет посвящена последней из этих трёх частей: запуску и, в частности, манифесту.

Запуск

Запуск, вместе с данными манифеста, представляет собой весь код, необходимый webpack для подключения вашего модульного приложения во время его работы в браузере. Он содержит логику загрузки и разрешения, необходимую для подключения ваших модулей по мере их взаимодействия. Это включает подключение модулей, которые уже загружены в браузер, а также логику ленивой загрузки тех, которые ещё не загружены.

Манифест

Как только ваше приложение попадает в браузер в виде index.html файла, некоторые пакеты и различные другие ресурсы, необходимые вашему приложению, должны быть загружены и связаны каким-то образом. Этот /src каталог, который вы так тщательно организовали, теперь скомпонован, сжат и, возможно, даже разделён на более мелкие фрагменты для ленивой загрузки с помощью webpack's optimization. Итак, как webpack управляет взаимодействием между всеми необходимыми вам модулями? Здесь вступают в игру данные манифеста…

По мере того, как компилятор входит в приложение, разрешает и отображает его, он записывает подробные заметки обо всех модулях. Эта совокупность данных называется «Манифестом», и именно её запуск использует для разрешения и загрузки модулей после их сборки и отправки в браузер. Независимо от выбранной вами синтаксической конструкции модулей, эти import или require утверждения теперь стали __webpack_require__ методами, которые указывают на идентификаторы модулей. Используя данные в манифесте, запуск сможет узнать, где получить модули за этими идентификаторами.

Проблема

Теперь у вас есть немного понимания о том, как работает webpack за кулисами. «Но как это на меня влияет?», — спросите вы. В большинстве случаев это не так. Запуск будет выполнять свою работу, используя манифест, и всё будет работать как будто по волшебству, как только ваше приложение попадет в браузер. Однако, если вы решите улучшить производительность своих проектов, используя кэширование браузера, этот процесс внезапно станет важной вещью для понимания.

Используя хэши содержимого в именах файлов пакета, вы можете указать браузеру, когда изменилось содержимое файла, тем самым аннулируя кэш. Однако, как только вы начнете это делать, вы сразу же заметите какое-то странное поведение. Некоторые хэши изменяются даже тогда, когда их содержимое, по-видимому, не меняется. Это вызвано внедрением запуска и манифеста, которые изменяются при каждом сборке.

См. раздел манифеста в нашем руководстве по управлению выводом, чтобы узнать, как извлечь манифест, и прочитайте руководства ниже, чтобы узнать больше о тонкостях долгосрочного кэширования.

© JS Foundation and other contributors
Licensed under the Creative Commons Attribution License 4.0.
https://webpack.js.org/concepts/manifest

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API