首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Webpack优化splitChunks生成的webpack文件

Webpack是一个现代化的前端构建工具,它可以将多个模块打包成一个或多个bundle文件,以提高网页加载速度和性能。splitChunks是Webpack中的一个优化功能,用于将公共的模块提取出来,形成一个单独的文件,以便在多个页面之间共享使用。

splitChunks的优化可以通过以下几个方面来实现:

  1. 提取公共模块:splitChunks可以将多个页面中共用的模块提取出来,形成一个单独的文件,减少重复加载和代码冗余。可以通过配置splitChunks的参数来控制提取的规则,例如最小引用次数、最小模块大小等。
  2. 异步加载模块:splitChunks还可以将异步加载的模块提取出来,形成一个单独的文件,以便在需要时动态加载。这样可以减少初始加载的文件大小,提高页面的响应速度。
  3. 缓存利用:由于splitChunks将公共模块提取出来形成单独的文件,这些文件可以被浏览器缓存,减少了重复加载的次数,提高了页面的加载速度。
  4. 按需加载:通过splitChunks的配置,可以将不同页面的公共模块提取出来形成不同的文件,从而实现按需加载,减少了不必要的加载和冗余代码。

Webpack提供了一些配置选项来优化splitChunks生成的webpack文件,例如:

  • chunks: 可以指定需要提取的模块类型,默认为async,即只提取异步加载的模块。还可以设置为initial,表示只提取初始加载的模块,或者all,表示提取所有模块。
  • minSize: 指定提取的模块的最小大小,默认为30000字节。可以根据实际情况调整该值,以避免过小的模块被提取。
  • minChunks: 指定模块被引用的最小次数,默认为1。可以根据实际情况调整该值,以避免过多的模块被提取。
  • maxAsyncRequests: 指定异步加载的模块的最大并行请求数,默认为5。可以根据实际情况调整该值,以避免过多的并行请求。
  • maxInitialRequests: 指定初始加载的模块的最大并行请求数,默认为3。可以根据实际情况调整该值,以避免过多的并行请求。
  • automaticNameDelimiter: 指定提取的文件名的分隔符,默认为~。可以根据实际情况调整该值,以符合项目的命名规范。

腾讯云提供了一系列与Webpack优化相关的产品和服务,例如:

  • 腾讯云CDN:提供全球加速服务,可以将Webpack打包后的文件分发到全球各地的节点,加速文件的加载速度。
  • 腾讯云对象存储COS:提供高可靠、低成本的对象存储服务,可以将Webpack打包后的文件存储在COS中,实现文件的长期保存和快速访问。
  • 腾讯云云函数SCF:提供无服务器的云函数服务,可以将Webpack打包后的文件部署为云函数,实现按需加载和动态扩缩容。

更多关于腾讯云相关产品和服务的介绍,请参考腾讯云官方网站:https://cloud.tencent.com/

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

webpack性能优化(2):splitChunks用法详解

之前写webpack性能优化(0):webpack性能优化概况-优化构建速度》、《webpack性能优化(1):分隔/分包/异步加载+组件与路由懒加载》如果使用vue-cli,默认生成vendor.js.../coverage优化输出与分包,原来熟悉配方 new webpack.optimize.CommonsChunkPlugin({}),现在可直接配置optimization项目在研究splitChunks...splitChunks默认有两个缓存组:vender(webpack5 默认为defaultVendors)和default,optimization.runtimeChunk优化持久化缓存, runtime...设置runtimeChunk之后,webpack就会生成一个个runtime~xxx.js文件。然后每次更改所谓运行时代码文件时,打包构建时app.jshash值是不会改变。...externals配置启用CDN,提高缓存效率与打包分析,具体参看《webpack性能优化(0):webpack性能优化概况-优化构建速度 》路由懒加载分组分组修改方法如下:const Role = (

1.9K42
  • webpack性能优化(2):splitChunks用法详解

    之前写webpack性能优化(0):webpack性能优化概况-优化构建速度》、《webpack性能优化(1):分隔/分包/异步加载+组件与路由懒加载》如果使用vue-cli,默认生成vendor.js.../coverage优化输出与分包,原来熟悉配方 new webpack.optimize.CommonsChunkPlugin({}),现在可直接配置optimization项目在研究splitChunks...splitChunks默认有两个缓存组:vender(webpack5 默认为defaultVendors)和default,optimization.runtimeChunk优化持久化缓存, runtime...设置runtimeChunk之后,webpack就会生成一个个runtime~xxx.js文件。然后每次更改所谓运行时代码文件时,打包构建时app.jshash值是不会改变。...externals配置启用CDN,提高缓存效率与打包分析,具体参看《webpack性能优化(0):webpack性能优化概况-优化构建速度 》路由懒加载分组分组修改方法如下:const Role = (

    1.7K20

    webpack 4 Code Splitting splitChunks 配置探索

    webpack 4 Code Splitting splitChunks 配置探索 webpack 4 废弃了之前不怎么好用 CommonsChunk,取而代之SplitChunks。...Code Splitting 首先 webpack 总共提供了三种办法来实现 Code Splitting,如下: 入口配置:entry 入口使用多个入口文件; 抽取公有代码:使用 SplitChunks...SplitChunks 首先我们所说 SplitChunks 是由 webpack 4 内置 SplitChunksPlugin 插件提供能力,可直接在 optimization 选项中配置,其默认配置如下...:抽取出来文件自动生成名字分割符,默认为 ~; name:抽取出来文件名字,默认为 true,表示自动生成文件名; cacheGroups: 缓存组。...CSS 配置 同样对于通过 MiniCssExtractPlugin 生成 CSS 文件也可以通过 SplitChunks 来进行抽取公有样式等。

    2.1K10

    webpack优化

    noParse oParse作用主要是过滤不需要解析文件,比如打包时候依赖了三方库 如 jquyer,而jquery是一个单独库没有其他依赖,这个时候可以通过配置noParse不去解析文件,提高打包效率...node_modules里面的js文件 这个时候我们可以配置exclude和include设置排除文件和限定文件 ... rules:[ { test:/\.js$/...由于运行在 Node.js 之上 Webpack 是单线程模型,所以Webpack 需要处理事情需要一件一件做,不能多件事一起做。...我们需要Webpack 能同一时间处理多个任务,发挥多核 CPU 电脑威力,HappyPack 就能让 Webpack 做到这点,它把任务分解给多个子进程去并发执行,子进程处理完后再把结果发送给主进程...('happypack') module.exports={ optimization:{ splitChunks:{ //分隔代码块

    34120

    Webpack】867- Webpack 优化阻塞 CSS

    现在有很多优化页面的办法,比如:静态资源合并和压缩,code splitting,DNS预读取等等 本文介绍是另一种优化方法:首屏阻塞css优化 原理: 首先我们了解一下页面的基本渲染流程 webkit...那么,为什么要做这种优化呢?上面的流程图就是原因:首先解析html生成dom树,同时解析css生成css树,之后结合两者生成渲染树,然后渲染到屏幕上。...那么,如果我们能优化css,那么就能大大减少页面渲染出来时间,从而提升pv,增加黏性 怎么做呢: 目前我知道比较实用办法是webpack集成critical,critical是一个提取关键css,...后,查看打包后html文件: // 省略......[hash].css中,因为它不再所设置首屏范围内,这就是所谓首屏css优化 相关内容 在上面打包后html文件里,我们看到了有一个link内有rel="preload" as="style"字段,

    1.2K20

    webpack打包优化_webpack打包及部署

    由于运行在 Node.js 之上 Webpack 是单线程模型,所以Webpack 需要处理事情需要一件一件做,不能多件事一起做。...我们需要Webpack 能同一时间处理多个任务,发挥多核 CPU 电脑威力,HappyPack 就能让 Webpack 做到这点,它把任务分解给多个子进程去并发执行,子进程处理完后再把结果发送给主进程...id=happyBabel', //排除node_modules 目录下文件 exclude: /node_modules/ }, ] }, plugins...对应参数 id:String 用唯一标识符 id 来代表当前 HappyPack 是用来处理一类特定文件. loaders: Array 用法和 webpack Loader 配置中一样. threads...: Number 代表开启几个子进程去处理这一类型文件,默认是3个,类型必须是整数。

    84420

    webpack打包优化面试_什么是webpack

    后来实现html,抽离css文件输出打包输出 3. 正常实现es6转换es5 基本实现效果查看webpack官网达到实现效果 ---- 一、通过实现减少查找路径来实现优化?...共享进程池 threadPool: happyThreadPool, //允许 HappyPack 输出日志 verbose: true, }), ] 三、通过平常咱写代码中有引入未使用情况下实现未使用的话就不打包来实现优化...id=happyBabel", //排除node_modules 目录下文件 exclude: /node_modules/, }, ], }, plugins: [ //清楚多余文件 只显示一个文件.../build", }), //html new HtmlWebpackPlugin({ //模板 生成已谁为模板html template: path.resolve(__dirname, "..../public/index.html"), }), //css new MiniCssExtractPlugin({ filename: "[name].css", //输出css文件名,默认以入口文件名命名

    91120

    webpack 优化(1)

    webpack 优化 前一段时间一直在写后台管理系统(vue + elementUI + webpack),数下来,虽然不多,也有 3 个了;由于是单页应用,每次到发布时候,都会耗费大量时间对代码进行编译压缩...,所以时不时都会思考着如何才能优化这个过程;谷歌和度娘就像是哆啦 A 梦奇幻袋,总能给大家带来意想不到惊喜,当然,这次也不例外。...happypack npm官方解释比较简单:通过并行转换文件以使 webpack 构建速度更快;说白了就是利用多线程优势。 它提供了一个插件和一个加载器,两个并用才能启用 happypack。...涛哥建议我参考公司内部配置工具,在生产环境中,针对特定引入参数,对引入文件进行剔除。.../client') ] } ] } }; 敬请期待下一节 webpack 优化(2) Dllplugin ^_^

    26030

    webpack性能优化

    开发环境优化 HMR 模块热替换 devServer设置hot: true style-loader 已实现 webpack.HotModuleReplacementPlugin source...map 建立源码与构建代码之间映射关系,快速定位错误在源码中位置 生产环境优化(构建时优化 & 运行时优化) 缓存策略 配置babel-loader时,设置cacheDiretory...为true,开启babel缓存,之后webpack在打包时,只会对修改过模块重新编译,其他模块读取babel缓存中即可 配合静态资源缓存策略,webpack要在输出文件名称上加hash Tree Shaking...多入口,多出口 打包 optimization.splitChunks.chunks: 'all' 将node_modules中模块单独打包 import() 减少参与构建代码 使用...模块打包成一个dll,并告诉webpack在构建时不需要再打包这几个模块,之后在html文件中手动引入dll 减小构建出代码体积 webpack.UglifyJsPlugin OptimizeCssAssetWebpackPlugin

    38020

    webpack构建优化之减少发布文件

    那么有没有办法减少文件修改呢? 下面以一个简单例子来分析下。 项目简介 项目的目录结构如图: ? , 整个项目采用react + webpack架构 , 页面文件放在pages下面。...构建入口是每个页面的入口,使用CommonsChunkPlugin将项目的基础库打包到vendor中,便于做缓存,使用web-webpack-plugin组织页面文件。...感兴趣可以访问 demo , 自己跑试试。 下面开始分析优化带来影响。 使用chunkhash代替hash chunkhash是根据每个chunk内容计算出hash值。...解决办法: 1、demo里webpack是3.0.0,只要升级到3.11.0,就可以解决, 官方修复了这个bug。页面文件hash信息不会被引入到运行时里面。...解决办法: new webpack.NamedChunksPlugin(), 使用chunk名字来作为chunkid, 构建结果为: ? 到这里优化就已经完成了。

    64810

    详解webpack构建优化

    当项目越来越复杂时,会面临着构建速度慢和构建出来文件体积大问题。webapck构建优化对于大项目是必须要考虑一件事,下面我们就从速度和体积两方面来探讨构建优化策略。...常见操作是通过SplitChunks(之前文章已经详细地写过了:SplitChunks)和 动态链接库(如上所示),这里都不再赘述。...但压缩文件这个过程本身是需要耗费时间和CPU资源,如果存在大量压缩需求,会加大服务器负担。所以可以在构建打包时候就生成gzip压缩文件,作为静态资源放在服务器上,接收到请求后直接把压缩文件返回。...使用webpack生成gzip文件需要借助compression-webpack-plugin,使用配置如下:const CompressionWebpackPlugin = require("compression-webpack-plugin...(js|css)$/, //匹配要压缩文件 algorithm: "gzip" }) ]}打包完成后除了生成打包文件外,还会额外生成 .gz后缀压缩文件

    1.6K00

    Webpack构建速度优化

    目录缩小范围noParseIgnorePlugin优化 resolve 配置externals缓存缩小范围在配置 loader 时候,我们需要更精确去指定 loader 作用目录或者需要排除目录...new webpack.IgnorePlugin({ resourceRegExp, contextRegExp });以moment为例,首先找到moment中语言包所在文件夹,然后在webpack...\.production\.min\.js$/,extensions在webpack中,我们可以预先设定一些文件扩展名webpack 默认配置const config = { //....../path/to/file';webpack在解析时候,就可以从我们设置扩展名中从左往右进行判断需要注意是:高频文件后缀名放前面;手动配置后,默认配置会被覆盖参考webpack视频讲解:进入学习如果想保留默认配置...package.json文件中依赖库名称,而value值代表是第三方依赖编译打包后生成js文件,然后js文件执行后赋值给window全局变量名称。

    1.6K10

    Webpack打包CSS文件

    Webpack打包CSS文件 逛遍CSDN没有能让我打包成功博文,然后理解了一波网上讲解成功了!.../index.css' 第二步 配置webpack.config.js文件 注意:这个文件是自己新建 配置内容 这里有些要注意地方 entry是入口文件路径,要按自己路径填,不能直接复制我 output...是输出文件文件名,和输出到什么位置,__dirname是用来动态获取当前文件所属目录绝对路径,后面的build是我一个文件夹,这个你们填自己就好 const { resolve } = require...先下载webpack npm i webpack webpack-cli -D 3....下载css-loader style-loader npm i css-loader style-loader -D 下包完成 第四步 打包 直接在终端输入webpack就可以了,到你在第二步填写输出文件

    1K20
    领券