Встряхивание дерева общих зависимостей в федерации модулей webpack 5

Я работаю над архитектурой для динамической панели мониторинга с компонентами, полученными из разных пакетов удаленного реагирования с использованием федерации модулей webpack 5. У меня есть разные библиотеки, которые используются в некоторых из этих удаленных пакетов. Эти пакеты можно раскачивать по дереву. Таким образом, каждый удаленный комплект будет иметь разные коды из одного и того же пакета. Если я использую эти пакеты как одноэлементные, когда два компонента с одинаковой зависимостью загружаются в DOM во время выполнения, может ли веб-пакет каким-либо образом получить код библиотеки из обоих объединенных пакетов? Или необходимо отключить встряхивание дерева в таких разделяемых библиотеках? (Под разделяемыми библиотеками я имел в виду пакеты npm)

2 ответа

Webpack автоматически отключает встряхивание дерева для общих пакетов.

Не имея возможности точно понять, что вы хотите сделать, я не совсем уверен, полностью ли это отвечает на ваш вопрос, но может быть полезно в ситуации. Вы можете получить более точный контроль над связками с помощью оптимизации modules.exports. Здесь вы можете получить довольно подробную информацию. Пример fontawesome находится в верхней части фрагмента кода вместе с настройками оптимизации.

      // Import within node app

  if ($('.fad').length) {
    import('../../node_modules/@fortawesome/fontawesome-pro/scss/duotone.scss');
  }

// Webpack 

modules.exports {
  optimization: {
    splitChunks : {
      chuncks: 'all',
      cacheGroups: {
      duotonecss: {
      test    : /[\\/]node_modules[\\/]@fortawesome[\\/]fontawesome-pro[\\/]scss[\\/](duotone)\.scss/,
      name    : 'duotonecss',
      chunks  : 'all',
      enforce : true,
       },
     },
    },
  },
};
Другие вопросы по тегам