首页 > 其他分享 >webpack4_CodeSplit——optimization.splitchunks

webpack4_CodeSplit——optimization.splitchunks

时间:2023-11-02 23:45:36浏览次数:54  
标签:jquery 文件 webpack4 js test optimization CodeSplit 打包

目录

代码

文档树

js
├─ change.js
├─ index.js
└─ test.js

webpack.config.js

const config = {
    entry: './src/js/index.js',
    output: {
        // [name]:取文件名
        filename: 'js/[name].[contenthash:10].js',
        path: join(__dirname, '/dist')
    },
    module: {
        rules: [{
            test: /\.js$/,
            exclude: /node_modules/,
            enforce: 'pre',
            use: [{
                loader: 'eslint-loader',
                options: {
                    fix: true
                }
            }]
        }, {
            test: /\.js$/,
            exclude: /node_modules/,
            use: [{
                loader: 'babel-loader',
                options: {
                    presets: [
                        ['@babel/preset-env', {
                            useBuiltIns: 'usage',
                            corejs: {
                                version: 3
                            },
                            targets: {
                                chrome: '60',
                                firefox: '50',
                                ie: '9',
                                safari: '10',
                                edge: '17'
                            }
                        }]
                    ]
                }
            }]
        }]
    },
    plugins: [
        new HtmlWebpackPlugin({
            template: './src/html/index.html',
            minify: {
                collapseWhitespace: true,
                removeComments: true
            }
        })
    ],
    mode: 'production'
};

通过修改entry来达到分割打包文件的目的

entry:{
    main: './src/js/index.js',
    test: './src/js/test.js'
}
  • 打包图样

通过optimization.splitChunks来分离大文件以及重复文件

修改entry为单文件,在test.js文件中引入jquery

import $ from 'jquery';
// eslint-disable-next-line
console.log($);
  • 打包图样

    可以看到jquery被全部打包入同一个js文件中

配置optimization.splitchunks

  • 在webpack.config.js文件中写入代码
    optimization: {
        splitChunks: {
            chunks: 'all'
        }
    }
  • 打包图样

    可以清楚地看到在打包后的文件被分为了两个部分,其中一个比较大的是引入的jquery文件。这段代码的用途是:将node_modules中的代码单独打包一个chunk最终输出。

多入口情况下的多份大文件重复引入

当没有配置optimization.splitchunks时,在test.js,change.js文件中重复引入'jquery'

  • 打包图样

    可以看到jquery代码在每一个文件中都被打包了一次。
  • 配置optimization.splitchunks
    • 打包图样

      可以看到被重复引用的jquery文件已经被单独打包。

单入口情况下的文件单独打包

参考博客

Webpack-CodeSplit(静态文件篇)
webpack文档_SplitChunksPlugin

标签:jquery,文件,webpack4,js,test,optimization,CodeSplit,打包
From: https://www.cnblogs.com/isAyi/p/14508577.html

相关文章

  • AT_abc325_f Sensor Optimization Dilemma 题解
    AT_abc325_fSensorOptimizationDilemma题解Date20231025:修复手滑公式\(\min\)、\(\max\)写反了。动态规划。类似背包问题。朴素算法记\((x,y)\)表示使用\(x\)个(1)传感器、\(y\)个(2)号传感器。设\(f(t,i,j)\)表示覆盖前\(t\)个区间,使用\((i,j)\)传感......
  • linear optimization
    \(\begin{array}{ll}\operatorname{minimize}&f_0(x)\\\text{subjectto}&f_i(x)\leqb_i,\quadi=1,\ldots,m.\end{array}\)Asanimportantexample,theoptimizationproblem(1.1)iscalledalinearprogramiftheobjectiveandc......
  • 元学习:元学习的始祖论文——《On the Optimization of a Synaptic Learning Rule》
       =============================================         ============================================= ......
  • 粒子群算法(Particle Swarm Optimization, PSO)
    ParticleSwarmOptimization算法原理参考:https://zhuanlan.zhihu.com/p/404198434Question使用PSO算法计算函数$f(x)=x_1^2+3x_2^2-x_1+2x_2-5$在\(x\in[-100,100]^2\)上的最小值CodeimportnumpyasnpfromtypingimportListParametersdim=......
  • 强化学习 Proximal Policy Optimization (PPO)
    参考:李宏毅老师课件PPO=PolicyGradient从On-policy到Off-policy,再加一些constraintPolicyGradientBasicConceptionActor:动作执行者(智能体)Env:环境RewardFunction:奖励函数Policy\(\pi\):anetworkwithparameter\(\theta\).Input:当前......
  • 【笔记】凸优化 Convex Optimization
    DifferentiationDef.Gradient\(f:{\calX}\sube\mathbb{R}^N\to\mathbb{R}\)isdifferentiable.Thenthegradientof\(f\)at\({\bfx}\in\cal{X}\),denotedby\(\nablaf({\bfx})\),isdefinedby\[\nablaf({\bfx})=\begin{bmatrix......
  • 基于斑马优化算法Zebra Optimization Algorithm求解单目标优化问题附matlab代码
    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。......
  • 基于 Webpack4 和 Vue 的可热插拔式微前端架构
    如果项目对你有所帮助,可以给个star Github地址什么是PuzzlePuzzle是基于Vue和Webpack4实现的一种项目结构;业务模块可以像拼图一样与架构模块组合,形成不同的系统,而这一切都是可以在生产环境热插拔的;这意味着你可以随时向你的系统添加新的功能模块,甚至改版整个系统,而不需......
  • AtCoder Regular Contest 164 E Segment-Tree Optimization
    洛谷传送门AtCoder传送门妙妙题。我们考虑如何方便地描述一棵广义线段树。不难想到使用断点描述,即对于一个结点\([l,r]\),它的左右儿子分别是\([l,mid],[mid+1,r]\),其中\(mid\in[l,r-1]\),然后把一层缩成一个\(2^{d-1}\)的序列,每一层都是上层对应结点的\(mid......
  • Comparing with traditional convex optimization methodology, what are advantages
    与传统的凸优化方法相比,粒子群算法有哪些优点 与传统的凸优化方法相比,粒子群优化(PSO)算法具有以下优点:全局搜索能力:PSO算法具有较强的全局搜索能力,能够在多个解空间中寻找最优解。由于粒子群在搜索过程中可以通过信息共享和合作,有助于避免陷入局部最优解。适应性和......