Webpack игнорирует фрагментацию для производственной сборки

#javascript #webpack

#javascript #webpack

Вопрос:

У меня есть конфигурация Webpack, которая разделяет мой код в моем проекте. То, что я пытаюсь сделать, это игнорировать фрагментацию и сгенерировать один файл, если это производственная сборка.

Это мой конфигурационный файл webpack: https://gist.github.com/alyn000r/5663c1036ab8e60695ba4db4e866df5f

Это мой index.js из-за чего происходит разбиение на части:

 if (typeof require.ensure !== `function`) require.ensure = (d, c) => c(require);  // mocha test runner polyfill

/**
 * require.ensure allows asynchronous chunk loading of the component, which means an extra HTTP hop to download the component,
 * in exchange of smaller initial download footprint.
 * - Use require.ensure for components that are least frequently used
 * - Use require.ensure for components that import libraries that are large in size
 */
export function lookup(componentName, callback) {
    switch (componentName) {
        // ============================== Components ===============================
        case 'dD':
            callback(require('./components/dD'));
            break;
        case 'eBL':
            callback(require('./components/eBL'));
            break;
        case 'essay':
            callback(require('./components/essay'));
            break;
        case 'hSM':
            require.ensure([], require => callback(require('./components/hSM')));
            break; 
  

Это то, что он генерирует прямо сейчас:

введите описание изображения здесь

Пожалуйста, помогите мне сгенерировать один файл, если (isProduction) имеет значение true

Я попытался удалить плагин CommonChunks и MinChunkSizePlugin, если это производство, но фрагменты все еще происходят. Я также пытался удалить

 jsonpFunction: `jsonpFunction${jsonpPackageName}`,
    chunkFilename: `${packageName}/${packageName}-[id].js`,
  

Но он все равно генерирует 0.0.js , 1.1.js , 2.2.js ….

Пожалуйста, скажите мне, чего мне не хватает. Спасибо

Ответ №1:

Вы можете отключить разделение кода, ограничив максимальное количество фрагментов до 1 с помощью LimitChunkCountPlugin :

 plugins: [
    new webpack.optimize.LimitChunkCountPlugin({
        maxChunks: 1
    });
]
  

Комментарии:

1. Эй, это генерирует два файла cas-core-renderer.js и cas-core-renderer-0.js . Я попытался установить для него значение maxChunks: 0, но, по моему мнению, это отключает плагин, потому что он снова сгенерировал 5 файлов. Спасибо вам за вашу помощь!