Извлечение кода из определенных каталогов в отдельный пакет в веб-пакете 4 - PullRequest
0 голосов
/ 26 июня 2018

У меня есть следующие настройки. У меня есть куча точек входа (все со своей HTML-страницей). Все записи находятся в /src/entry/. Внешний код находится в /node_modules. И у меня есть куча внутреннего кода, который также используется записями. Это находится в /src/node_modules/ в моем случае.

Теперь для оптимального долгосрочного кэширования я хочу поместить все из /node_modules в свой пакет под названием vendors и все из src/node_modules в пакет под названием libs.

Как я могу настроить это с помощью SplitChunksPlugin?

Я попробовал следующее:

const optimization = {
  splitChunks: {
    cacheGroups: {
      vendor: {
        test: /[\\/]node_modules[\\/]/,
        name: "vendors",
        chunks: "all"
      },
      lib: {
        test: /[\\/]src[\\/]node_modules[\\/]/,
        name: "libs",
        chunks: "all"
      }
    }
  },
  runtimeChunk: "single"
};

Но он помещает все в связку поставщиков.


1 Ответ

0 голосов
/ 02 июля 2018

Регулярное выражение test блока vendor находит обе папки, поскольку имя node_modules используется дважды - один раз для установки NPM и один раз для библиотек, которые вы используете в исходном коде.

Если вы можете переименовать /src/node_modules/ в /src/lib/ и обновить vendor регулярное выражение чанка, вы можете выделить его таким образом.

Вы также можете изменить тест регулярного выражения vendor, чтобы исключить папку /src для совпадений, если переименование папки нецелесообразно.

...