Webpack Split Chunks Плагин перезаписывает cacheGroups, регулярное выражение соответствует? - PullRequest
0 голосов
/ 19 мая 2019

Я пытаюсь использовать плагин Webpack 4 Split Chunks для создания пакетов нескольких поставщиков.В этом случае я хочу создать один блок для реагирования / реагирования-домена и один блок для реакции-маршрутизатора / реагирования-маршрутизатора-домена.

Когда cacheGroups содержит только react и vendorСборка работает как положено.Выходные данные пакета:

- index
- react
- runtime
- vendors

Аналогично, если у меня есть только cacheGroups для router и vendor, все работает как положено.Вывод:

- index
- router
- runtime
- vendors

В любом случае, когда создаются чанки, проверка показывает правильный код для react или router в соответствующих случаях.

НО... это не работает, когда я включаю оба - в этом случае создается только блок router, а код react помещается в комплект индекса (src).

Iподозреваете, что в шаблонах регулярных выражений что-то не так, что вызывает аннулирование предыдущей cacheGroup?Любая помощь приветствуется.

Вот мой конфиг веб-пакета для splitChunks:

splitChunks: {
  cacheGroups: {
    react: {
      test: /[\\/]node_modules[\\/](react|react-dom)[\\/]/,
      name: 'react',
      chunks: 'all'
    },
    router: {
      test: /[\\/]node_modules[\\/](react-router|react-router-dom)[\\/]/,
      name: 'router',
      chunks: 'all'
    },
    vendor: {
      test(mod) {
        // exclude anything outside node modules
        if (!mod.context.includes('node_modules')) {
          return false;
        }

        // exclude react and react-dom
        if (/[\\/]node_modules[\\/](react|react-dom)[\\/]/.test(mod.context)) {
          return false;
        }

        // exclude react-router and react-router-dom
        if (/[\\/]node_modules[\\/](react-router|react-router-dom)[\\/]/.test(mod.context)) {
          return false;
        }

        // return all other node modules
        return true;
      },
      name: 'vendors',
      chunks: 'all'
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...