我正在使用 webpack 2 作为模块捆绑器编写一个 javascript webapp。
我需要的是一种混合长期缓存功能(https://webpack.js.org/guides/caching/)和代码拆分(https://webpack.js.org/guides/code-splitting/)的方法。
我可以使用 require.ensure 延迟加载供应商库(在我的情况下为 pixi.js),但这会导致创建包含 lib 的包。我也可以创建可缓存的包,但我想创建一个用于长期缓存的包,并在延迟加载的部分中使用它。
可能吗?
编辑 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
使用过。