Как в Webpack4 переместить некоторые модули в отдельный chunk?

Хочу вынести все модули из node_modules в chunk 'vendor' за исключением angular'а - его вынести в chunk 'angular'. Пример конфигурации ниже:

splitChunks: {
  minSize: 0,
  chunks: 'all',
  cacheGroups: {
    vendor: {
      name: 'vendor',
      test: /\/node_modules\//
    },
    angular: {
      name: 'angular',
      test: /\/node_modules\/(rxjs|@angular)\//
    }
  }
}


Но в приведённом примере chunk 'angular' почему-то не создаётся.

Как можно исправить конфиг?

При этом следующий конфиг работает как задумано:

splitChunks: {
  minSize: 0,
  chunks: 'all',
  cacheGroups: {
    vendor: {
      name: 'vendor',
      test: (chunks) => {
        if (!/\/node_modules\//.test(chunks.resource)) return false;
        return !/\/node_modules\/(rxjs|@angular)\//.test(chunks.resource);
      }
    },
    angular: {
      name: 'angular',
      test: (chunks) => {
        if (!/\/node_modules\//.test(chunks.resource)) return false;
        return /\/node_modules\/(rxjs|@angular)\//.test(chunks.resource);
      }
    }
  }
}
  • Вопрос задан
  • 506 просмотров
Пригласить эксперта
Ответы на вопрос 1
Taraflex
@Taraflex
Ищу работу. Контакты в профиле.
Лучше посмотрите в сторону DLLPlugin
https://webpack.js.org/plugins/dll-plugin/#examples
Просто разбиение на чанки не решит проблему скорости сборки, все равно все будет пересобираться при каждом запуске.
С DLLPlugin вендоров можно будет пересобирать только при их обновлении.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы