相关文章推荐
旅行中的红茶  ·  痔疮是什么样子的·  11 月前    · 
深沉的手套  ·  郭子凡_百度百科·  1 年前    · 
近视的豆浆  ·  【Begin ...·  1 年前    · 

runtimeChunk

在这里插入图片描述
转载其他介绍:
https://segmentfault.com/a/1190000010317802#articleHeader10

splitChunks.cacheGroups

  1. 抽离第三方库
第一种方式:
optimization: {
        runtimeChunk: 'single', 
        splitChunks: {  
            cacheGroups: { 
                vendors: {  
                    test: /[\\/]node_modules[\\/]/,
                    name: 'vendors',
                    chunks: 'all'
    会抽离出第三库的代码,生成一个vendors.db5b3f3dc26a5ebe685c.js文件,且每次打包第三库的hash也不会变化,
    这样就会利用浏览器的缓存机制,达到一个缓存优化,除非第三方库的版本变化,会重新生成一个新的文件,这样浏览
    器也会重新请求新的文件。
第二种方式:  
optimization: {
        runtimeChunk: 'single', 
        splitChunks: {  
            cacheGroups: { 
                commons: {
                    name: 'commons',
                    chunks: 'initial',
                    minChunks: 2
    这种方式也会抽离出一个commons.fgd453535ftg.js文件,与第一种方式的不同是,它不仅仅抽离第三方库,
    且会把所有js模块间引入的重复代码,也会抽离到commons.fdsfs534534g.js文件中。
	总结:可以根据自己的项目情况选择配置,因为第三库不需要每次都去加载,再没有版本变化的时候,
	只需要变化变更的业务逻辑代码,这样来达到一个缓存优化的目的
                    runtimeChunk转载其他介绍:https://segmentfault.com/a/1190000010317802#articleHeader10splitChunks.cacheGroups抽离第三方库第一种方式:optimization: {        runtimeChunk: 'single',         splitChunks: {       ...
				
webpack4 splitChunks和runtimeChunk用法详解 为什么要用splitChunks webpack4之前使用CommonsChunkPlugin提取公共代码,但是CommonsChunkPlugin存在以下三个问题: 1:产出的chunk在引入的时候,会包含重复的代码; 2: 无法优化异步chunk; 3:高优的chunk产出需要的minchunks配置比较复杂。 为了解...
今天主要记录一下 废除 commonChunksPlugin 之后,怎么使用 splitChunksPlugin && runtimeChunkPlugin 1.splitChunksPlugin 默认配置项 : chunks: all, async, initial 三选一, 插件作用的chunks范围 minSize: 最小尺寸 misChunks:...
形如import('abc').then(res=>{})这种异步加载的代码,在webpack中即为运行时代码。 在VueCli工程中常见的异步加载路由即为runtime代码。 path: '/about', name: 'About', // route level code-splitting // this generates runtimeChunk:运行时生成的chunk,而非静态编译,一般来讲是用来管理各个chunk之间的运行关系。 场景:业务代码中修改的代码重新打包生成了main的chunk,一些依赖包没有改变,但是verdors的包hash也变了,可能是因为没有配置runtimeChunk(runtime的内容都被打包嵌入了各自的打包文件)存在运行时一些依赖关系发生了变化。
optimization.runtimeChunk: ‘single’ 一直很难理解,直到我看到了webpack的官方文档中说到的otherwise we could get into trouble described (下面称文章),下面我们就用两个例子把这个trouble复现一下。 Bug重现 文章中说,当两个模块从同一个模块(下面叫公用模块)中import后,公用模块的值,在同一个页面中(同一个runtime中),应该是多少?在文章中component-1和component-2都累加了1,因此.
Chunk Chunk不同于entry、 output、module这样的概念,它们对应着Webpack配置对象中的一个字段,Chunk没有单独的配置字段,但是这个词出现在CommonsChunkPlugin(Webpack3以前)、optimization.splitChunks(Webpack4以后)这样的名称之中。 Webpack4和Webpack5的区别主要在以下几个方面: 1. 性能优化:Webpack5在构建速度和打包体积方面都有了很大的提升,尤其是在使用Tree Shaking和Code Splitting等功能时更加高效。 2. 模块联邦:Webpack5引入了模块联邦的概念,可以实现多个应用之间的模块共享,提高了代码复用性和开发效率。 3. 支持WebAssembly:Webpack5支持WebAssembly模块的导入和导出,可以更加高效地处理一些计算密集型的任务。 4. 默认值改变:Webpack5中一些默认值发生了改变,例如mode默认值从production改为了production,需要注意调整配置文件。 5. 其他改进:Webpack5还引入了一些新的特性和改进,例如支持ESLint的缓存,支持多种类型的资源模块等。 ### 回答2: Webpack是一个强大的模块打包工具,目前最新版本是Webpack5。和之前版本(Webpack4)相比,Webpack5带来了很多新的改进和特性。 其中最显著的区别是缩小了输出文件的大小和提高了构建速度。Webpack5引入了一个叫做Tree shaking的新特性,它可以去除未使用的代码,因此,输出的文件尺寸会变得更小。此外,Webpack5还引入了Module Federation,这一新特性可实现模块共享,从而使构建速度更快。 除此之外,Webpack5还带来了一些其他的改进。其中一项改进是Webpack5的缓存机制更加高效,因此重复构建时能够更快地完成。此外,Webpack5也增强了持久化缓存的能力,能够更好地存储数据。还有一项非常实用的改进是Webpack5支持0配置模式,使得开发者能够更快地开始工作。 总体而言,Webpack5与Webpack4相比,在性能和功能上都有了很大的提升。如果你正在考虑使用Webpack,我建议你选择Webpack5,因为它会让你的工作更加高效和愉快! ### 回答3: Webpack是一个广泛使用的JavaScript模块打包工具。Webpack可以将多个开发时编写的JavaScript模块汇总到一个或多个静态资源中。Webpack会创建一个整个应用程序的依赖图,使用该依赖图生成打包后的文件,并将应用程序的所有依赖项捆绑在一起。 Webpack在不断地更新迭代中,目前主要有4.x和5.x两个版本。下面就来比较一下Webpack4和Webpack5的区别。 1. 构建速度 Webpack5做了很多优化,构建速度提升了90%以上,比Webpack4快了很多。取代了Optimize CSS Assets Plugin 和 TerserWebpackPlugin两个插件均可减少构建时间。 2. Tree shaking Webpack5针对 Tree shaking优化有很多的改进,增加了 Module Graph 和深度优化,进一步的提高了 Tree shaking 的效率,把未用到的模块从最终打包的代码中删除,减小了打包后的文件大小。 3. 模块联邦 Webpack5新增了模块联邦(module federation)提供了一种新的代码共享机制,可以允许不同的应用程序之间共享代码。一个 Webpack5 主应用可以提供自己的模块,也可以使用其他应用程序的模块。可以让多个相互独立的应用沟通连通,灵活性更强。 4. 全局属性 Webpack4中不支持全局属性,使得在构建时,一些全局属性无法正常引用。Webpack5添加了对于全局属性的支持,可以让全局属性正常工作,而不会产生错误。 5. 缓存 针对于缓存方面,Webpack5在开发模式中开启持久化缓存,可以在增量构建时提供更快的编译速度,以避免重新运行整个Webpack构建流程。 综上所述,Webpack5对于性能、tree shaking、模块联邦,全局属性这些进行了大量的优化和改进,拥有更好的性能表现。而且Webpack5的一些新特性,如模块联邦,可以满足更多的需求,Webapck5相比Webpack4具有更好的发展前景和应用前景。