Я пишу веб-приложение javascript, используя webpack 2 в качестве сборщика модулей.
Что мне нужно, так это способ смешивания функции долгосрочного кэширования (https://webpack.js.org/guides/caching/) и разделение кода (https://webpack.js.org/guides/code-splitting/).
Я могу лениво загрузить библиотеку поставщика (в моем случае pixi.js), используя require.ensure, но это приводит к созданию пакета, включая библиотеку. Я также могу создавать кэшируемые пакеты, но я хотел бы создать пакет для долгосрочного кэширования и использовать его в части с ленивой загрузкой.
Является ли это возможным?
Изменить 1
Я добавляю некоторые части моей конфигурации для лучшего объяснения.
entry: {
vendor: ['some', 'vendors', 'libs'],
pixi: ['pixi.js'],
main: ['babel-polyfill', './app/index.js'],
},
output: {
[... other configuration]
filename: '[name].[chunkhash].bundle.js',
chunkFilename: '[name].[chunkhash].js'
},
Я использую пакет поставщика для внешних библиотек, необходимых во время запуска, но pixi.js нужен только в некоторых случаях, но я хотел бы, чтобы его кэшировали на длительный срок.
Фаза связывания выдает эти 2 файла (и многие другие):
pixi.8ef3aeac142f1bf921bf.bundle.js
6.9331d810904191781167.js
их содержание почти одинаково. Второй создается с помощью require.ensure, но я бы хотел, чтобы использовался pixi.8ef3aeac142f1bf921bf.bundle.js
.
pixi
бандл? Если вы загружаете компонент pixi с помощью require.ensure, он уже предоставлен6.9331d810904191781167.js
. Вам не нужно объявлять пакет для него. - person Jonathan Argentiero   schedule 16.03.2017