1

enter image description hereWebpack, как вынуть модуль в свой собственный слой сборки?

С настройками сборки по умолчанию я получаю следующие построения слоев: (X + A), (Y + A + B), (Z + B).

Я хочу: (X + A), (Y + A), Z, B

B должен загрузить только один раз, когда мы просить Y и Z модулей.

Я нашел CommonsChunkPlugin, но я не могу его правильно настроить.

var webpack = require("webpack"); 
var CommonsPlugin = new require("webpack/lib/optimize/CommonsChunkPlugin"); 

module.exports = { 
    entry: { 
     main: "./main" 
    }, 
    resolve: { 
     modulesDirectories: [ 
      "." 
     ] 
    }, 
    output: { 
     publicPath: "js/", 
     filename: "[name].builded.js" 
    }, 
    plugins: [ 
      new CommonsPlugin({ 
      // What should I write here? 
      }) 
    ] 
}; 

ответ

0

Похоже, вы должны добавить B в качестве отдельной точки входа:

entry: { 
    main: "./main", 
    Bentry: ["B"] 
}, 

и добавить CommonsChunkPlugin в plugins разделе:

new webpack.optimize.CommonsChunkPlugin('Bentry', 'B.js'), 
+1

пытался, получил ошибку «зависимость к точке входа не допускается " –

+1

Извините,' Bentry' должен быть массивом. Отредактировал мой ответ. –

+1

теперь я получил общий кусок B, но у меня есть модули (Y + A + B), (Z + B) и не имеют никакой пользы от этого общего куска. Мне нужно исключить код модуля B из родительских блоков chowks sowehow –