Как сделать отдельный vendor для разных частей приложения?

Для создания отдельного bundle файла (vendor bundle) для разных частей приложения в Webpack, вы можете использовать функциональность SplitChunksPlugin.

SplitChunksPlugin позволяет выделить общий код из разных частей приложения в отдельные файлы, такие как vendor.js или commons.js, что позволяет уменьшить размер итогового bundle файла и ускорить время загрузки приложения.

Для настройки SplitChunksPlugin, сначала добавьте его в конфигурацию Webpack веб-пакета. Например, в webpack.config.js файле:

const webpack = require('webpack');

module.exports = {
  // остальная конфигурация Webpack
  optimization: {
    splitChunks: {
      cacheGroups: {
        // создание отдельного bundle файла для внешних библиотек (vendor)
        vendor: {
          test: /[\/]node_modules[\/]/,
          name: 'vendor',
          chunks: 'all'
        },
        // создание отдельного bundle файла для общего кода (commons)
        commons: {
          name: 'commons',
          chunks: 'all',
          minChunks: 2
        }
      }
    }
  }
};

В этом примере мы настроили SplitChunksPlugin, чтобы он создавал отдельный bundle файл для внешних библиотек из папки node_modules с именем "vendor". Также мы создали отдельный bundle файл для общего кода с именем "commons".

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

После настройки SplitChunksPlugin Webpack будет автоматически анализировать ваш код при сборке и создавать отдельные файлы для соответствующих групп. Например, если ваш код использует библиотеку из папки node_modules, она будет выделена в файл vendor.js. Если код из разных модулей имеет общую зависимость, он будет выделен в файл commons.js.

Чтобы использовать созданные bundle файлы в своем приложении, вы должны добавить их в HTML-файл вашего приложения с помощью тега script. Например:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>My App</title>
</head>
<body>
  <script src="vendor.js"></script>
  <script src="commons.js"></script>
  <script src="app.js"></script>
</body>
</html>

В этом примере мы добавили ссылки на сгенерированные bundle файлы vendor.js и commons.js в наш HTML-файл. Затем мы добавили ссылку на наш основной bundle файл app.js, который содержит код нашего приложения.

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

Это лишь краткое описание того, как настроить отдельный vendor bundle для разных частей приложения в Webpack. В зависимости от вашей конкретной ситуации, вам могут потребоваться дополнительные шаги или настройки.