Отдельные комплекты образуют динамически импортируемые модули узлов - PullRequest
0 голосов
/ 05 ноября 2019

У меня есть следующая конфигурация в конфигурации webpack для разделенных кусков. Это прекрасно создает двух поставщиков комплектов (модули узлов, которые были импортированы в исходные файлы) и общие (модули узлов, которые были импортированы в лениво загруженные компоненты)

splitChunks: {
        name: true,
        cacheGroups: {
          default: false,
          vendors: false,
          vendor: {
            test: /[\\/]node_modules[\\/]/,
            name: "vendors",
            chunks: "initial"
          },
          common: {
            test: /[\\/]node_modules[\\/]/,
            name: "common",
            minChunks: 2,
            chunks: "async",
            priority: 10,
            reuseExistingChunk: true,
            enforce: true
          }
        }
      },

Вопрос- Но естьнекоторые узловые модули, которые я не хочу включать ни в один из пакетов. Ни два вышеперечисленных, ни основные комплекта, но должны создаваться отдельно.

import('lodash') должен создать lodash.chunk.js.

import('underscore') должен создать underscore.chunk.js.

Могу ли я сделать это, подумав волшебные комментарии? / * webpackIgnore: true * /

1 Ответ

0 голосов
/ 05 ноября 2019

Здесь ваш lodash будет добавлен к общему чанку в зависимости от текущей конфигурации splitchunks. Чтобы загрузить его в качестве отдельного чанка, измените конфигурацию сплитчунков на

var vendorCheck = function vendorCheck(module) {
  var request = module.userRequest;
  // Specify the packages in the condition that need not be present in vendor chunk
  // Here I am excluding the package lodash from vendor chunk
  return request && request.indexOf('node_modules') >= 0 && request.indexOf('node_modules/lodash') === -1
};

var lodashCheck = function lodashCheck(module) {
  var request = module.userRequest;
  return request && request.indexOf('node_modules/lodash') >= 0
}

cacheGroups: {
    default: false,
    'lodash': {
      name: 'lodash',
      chunks: 'all',
      minChunks: 1,
      test: lodashCheck
    },
    vendor: {
      name: 'vendor',
      chunks: 'all',
      minChunks: 1,
      test: vendorCheck
    },
    common: {
        test: vendorCheck,
        name: "common",
        minChunks: 2,
        chunks: "async",
        priority: 10,
        reuseExistingChunk: true,
        enforce: true
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...