Главная | Все статьи | Код

Что такое webpack externals и как их настроить

Время чтения статьи ~2 минуты
Что такое webpack externals и как их настроить главное изображение

Благодаря webpack externals приложение, которое собирается с помощью webpack, может использовать зависимости, не включённые в бандл. Эти зависимости загружаются, например, с помощью ссылки на CDN в теге <script>, и становятся доступными глобально. Webpack externals позволяют использовать такие зависимости с помощью обычного импорта.

Как использовать webpack externals

Чтобы подключить, например, Vue через CDN в созданном с помощью webpack бандле, нужно выполнить следующие действия:

  1. Добавить зависимость, в данном случае Vue, в HTML-код страницы
  2. Настроить externals, то есть указать глобальную переменную из скрипта CDN и строку, которая будет использоваться для импорта
  3. Импортировать зависимость с помощью строки, которая указана в настройках externals

Рассмотрим процесс пошагово.

Как добавить зависимость

В нашем примере нужно добавить в HTML страницы скрипт подключения:

<script src='https://cdn.jsdelivr.net/npm/vue/dist/vue.js'></script>

Он добавляет Vue в объект window как window.Vue. Также доступ можно получить с помощью глобальной переменной Vue.

Читайте также Зачем нужно собирать фронтенд: подробный гайд

Как настроить externals

Это делается файле webpack.config.js:

module.exports = {
  externals: {
    vue: 'Vue'
  }
};

Здесь мы указываем ключ vue и добавляем в его значение глобальную переменную Vue.

Как импортировать зависимость

Нужно указать импорт:

import Vue from 'vue';

Webpack externals фактически меняет значение from на определённое в webpack.config.js. То есть под капотом Vue импортируется из объекта window:

import Vue from window.Vue;

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

Адаптированный перевод статьи What is Webpack Externals.

Прокачивайтесь с Хекслетом — пройдите трек для опытных разработчиков «СИКП на JS». Эти курсы перевернут ваше представление о том, что такое код, данные и функции. Они базируются на легендарном курсе «Структура и интерпретация компьютерных программ (СИКП)». В этих курсах создаются свои собственные типы данных, из которых строятся другие типы, изучаются функции высшего порядка, каррирование, частичное применение и многое другое. Вы познакомитесь с отложенными вычислениями, мемоизацией и лямбда-исчислением.

Аватар пользователя Дмитрий Дементий
Дмитрий Дементий 02 ноября 2020
9
Рекомендуемые программы
профессия
от 6 300 ₽ в месяц
Разработка фронтенд-компонентов для веб-приложений
10 месяцев
с нуля
Старт 25 апреля
профессия
от 6 300 ₽ в месяц
Разработка веб-приложений на Django
10 месяцев
с нуля
Старт 25 апреля
профессия
от 6 183 ₽ в месяц
Ручное тестирование веб-приложений
4 месяца
с нуля
Старт 25 апреля
профессия
от 6 300 ₽ в месяц
Разработка приложений на языке Java
10 месяцев
с нуля
Старт 25 апреля
профессия
от 5 025 ₽ в месяц
новый
Сбор, анализ и интерпретация данных
9 месяцев
с нуля
Старт 25 апреля
профессия
от 6 300 ₽ в месяц
Разработка веб-приложений на Laravel
10 месяцев
с нуля
Старт 25 апреля
профессия
от 5 840 ₽ в месяц
Создание веб-приложений со скоростью света
5 месяцев
c опытом
Старт 25 апреля
профессия
от 9 900 ₽ в месяц
Разработка фронтенд- и бэкенд-компонентов для веб-приложений
16 месяцев
с нуля
Старт 25 апреля
профессия
от 6 300 ₽ в месяц
Разработка бэкенд-компонентов для веб-приложений
10 месяцев
с нуля
Старт 25 апреля
профессия
новый
Автоматизированное тестирование веб-приложений на JavaScript
8 месяцев
c опытом
в разработке
Старт 25 апреля
профессия
Верстка с использованием последних стандартов CSS
5 месяцев
с нуля
Старт в любое время