Как собрать картинки в разных директориях в финальный бандл Webpack?

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

  1. Установка необходимых зависимостей:
  • Создайте новый проект или перейдите в директорию с существующим.
  • Установите Webpack и связанные пакеты с помощью команды:
    npm install webpack webpack-cli --save-dev
  1. Настройка конфигурации Webpack:
  • Создайте файл webpack.config.js в корневой директории проекта.
  • Импортируйте необходимые модули:
    const path = require('path');
  • Экспортируйте объект с настройками Webpack:
    module.exports = {
      // Настройки веб-приложения
      entry: './src/index.js', // Главный файл приложения
      output: {
        path: path.resolve(__dirname, 'dist'), // Директория для выходных файлов
        filename: 'bundle.js' // Название выходного файла веб-приложения
      },
      // Настройки загрузчиков
      module: {
        rules: [
          // Загрузчик для картинок
          {
            test: /.(png|jpe?g|gif|svg)$/,
            use: [
              'file-loader'
            ]
          }
        ]
      }
    };
  • Здесь мы используем file-loader, который автоматически обрабатывает все картинки и копирует их в указанную директорию output.path.
  1. Создание директорий и структуры проекта:
  • Создайте папку src в корневой директории проекта, если ее еще нет.
  • Внутри папки src создайте папки для хранения картинок и добавьте соответствующие файлы, например images/logo.png и images/background.jpg.
  1. Использование картинок в JavaScript-файлах:
  • Импортируйте нужные изображения в JavaScript-файлах. Например, в src/index.js:
     import logoImage from './images/logo.png';
     import background from './images/background.jpg';
  • Вы можете использовать эти переменные в коде для отображения картинок:
     const logo = document.createElement('img');
     logo.src = logoImage;
     
     const body = document.querySelector('body');
     body.style.backgroundImage = `url(${background})`;
  1. Сборка проекта:
  • Добавьте скрипты в файл package.json для удобной сборки и запуска проекта:
     "scripts": {
       "build": "webpack --mode production",
       "start": "webpack serve --mode development --open"
     }
  • Запустите команду npm run build для сборки проекта. Картинки будут скопированы в директорию dist вместе с остальными файлами.
  • Теперь вы можете использовать бандл bundle.js в вашем веб-приложении, где картинки будут отображаться из директории dist.

В результате после завершения сборки проекта с помощью Webpack, все картинки из указанной директории src/images будут скопированы в директорию dist вместе со сгенерированным бандлом JavaScript. Вы можете настроить путь output.path, чтобы картинки копировались в нужную вам директорию внутри dist.