Webpack v4 - Миграция с CommonsChunkPlugin на SplitChunksPlugin - PullRequest
0 голосов
/ 28 декабря 2018

Я с трудом пытаюсь понять, как перенести настройки Webpack с v3 на v4 с помощью SplitChunksPlugin.То, как я настраивал это раньше, было таким:

webpack.mix.js

...
entry: {
    main: mainJsEntry,
},
plugins: [
    new webpack.optimize.CommonsChunkPlugin({
        names: ["main"],
        filename: 'js/[name].js',
        minChunks: Infinity
    })
],
...

global.js

const Vue = require('vue'); // this ends up in global.js
const myModule = require('global/mymodule.js'); // this is imported into global.js

page1.js

const Vue = require('vue'); // this references global.js
const anotherLibrary = require('anotherLibrary'); // this is imported into page1.js

page2.js

const myModule = require('global/mymodule.js'); // this references global.js
const anotherLibrary = require('anotherLibrary'); // this is imported into page2.js

Я пытаюсь сделать следующее:все комплекты Javascript, кроме global.js, ссылаются на существующий импорт из global.js, но не связывают ни один модуль, который не был импортирован внутри самого global.js.

После следования документации по Webpack v4 я могутолько кажется, что Webpack объединяет все, что я импортирую более одного раза в другие модули, в global.js, но я этого не хочу.Вариант использования: если я хочу использовать карусель на двух страницах, я импортирую на каждую страницу, но я не хочу, чтобы она использовалась глобально, поскольку она используется на 2 из 100+ страниц веб-сайта.

...
optimization: {
    splitChunks: {
        cacheGroups: {
            commons: {
                name: 'global',
                filename: 'js/corp/global.js',
                chunks: 'all',
                minChunks: 2
            }
        }
    }
},
...

Я надеюсь, что то, что я надеюсь сделать, ясно.Любая помощь приветствуется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...