webpack 的optimization.runtimeChunk这个配置项的具体作用是什么?看了文档还是不懂
假设一个使用动态导入的情况(使用import()),在app.js
动态导入component.js
const app = () =>import('./component').then();
build之后,产生3个包。
0.01e47fe5.js
main.xxx.js
runtime.xxx.js
其中runtime
,用于管理被分出来的包。下面就是一个runtimeChunk
的截图,可以看到chunkId这些东西。
...
function jsonpScriptSrc(chunkId) {
/******/ return __webpack_require__.p + "" + ({}[chunkId]||chunkId) + "." + {"0":"01e47fe5"}[chunkId] + ".bundle.js"
/******/ }
...
如果采用这种分包策略
app
的时候runtime
与(被分出的动态加载的代码)0.01e47fe5.js
的名称(hash)
不会改变,main的名称(hash)
会改变。component.js
,main
的名称(hash)
不会改变,runtime
与 (动态加载的代码) 0.01e47fe5.js
的名称(hash)会改变。下面这个连接有介绍,但是需要有翻墙。建议自己试一下,很简单。。。
https://developers.google.com...
5 回答1.7k 阅读
1 回答2.7k 阅读
2 回答1.3k 阅读
1 回答1.4k 阅读
917 阅读
1 回答559 阅读
优化持久化缓存的, runtime 指的是 webpack 的运行环境(具体作用就是模块解析, 加载) 和 模块信息清单, 模块信息清单在每次有模块变更(hash 变更)时都会变更, 所以我们想把这部分代码单独打包出来, 配合后端缓存策略, 这样就不会因为某个模块的变更导致包含模块信息的模块(通常会被包含在最后一个 bundle 中)缓存失效. optimization.runtimeChunk 就是告诉 webpack 是否要把这部分单独打包出来.