美文网首页
前后端分离系列-chunk

前后端分离系列-chunk

作者: 汤姆猫_6074 | 来源:发表于2020-01-22 13:44 被阅读0次

demo https://github.com/757566833/webpack-guide

在加入缓存之后,我们仅仅是让第二次加载及其以后,进行了快速响应
但是第一次加载还是巨慢,怎么办?

image.png 一般情况下,在开发项目的过程中,代码一直变化,但是第三方包是不会有变动的 image.png

例如 app的版本1 版本2 版本3 甚至app2都在依赖同一个react,antd版本

这样我们将打包的文件拆开 拆成react,antd,app 三大部分
webpack.prod.ts


import path from "path";
import webpack from "webpack";
import {BundleAnalyzerPlugin} from "webpack-bundle-analyzer";
import merge from "webpack-merge";
import common from "./webpack.common";
const config: webpack.Configuration = merge(common, {
    mode: "production",
    devtool: "source-map",
    optimization: {
        splitChunks: {
            chunks: "all",     
// 
            minSize: 100000, 
            maxSize: 300000,
            minChunks:1,
            cacheGroups: {
                react: {
                    test: /[\\/]node_modules[\\/](react|react-dom)[\\/]/,
                    name: "react",
                    chunks: "all",
                },
                antd: {
                    test: /[\\/]node_modules[\\/]antd|\@ant(.+?)[\\/]/,
                    name: "antd",
                    chunks: "all",
                },
            },
        },
    },
    output: {
// 改成了chunk命名,避免出现0123这种
        filename: "[name].[hash].js",
        path: path.resolve(__dirname, "..", "dist"),
    },
    plugins: [
        new BundleAnalyzerPlugin(),
    ],
});

export default config;

这样拆完,build之后


image.png

但是有引申出来一个新问题,每次我只是改了js,并没有改css,所有的文件都会重新命名,这就造成了资源浪费
webpack的hash 分三种 hash chunkhash contenthash
webpack.common.ts

...
 plugins: [
        new HtmlWebpackPlugin({
            title: "test",
           template: path.resolve(__dirname,'template.html'),
        }),
        new MiniCssExtractPlugin({
            filename: "[name].[contenthash].css",
        }),

    ],
...

webpack.prod.ts

...
 output: {
        filename: "[name].[chunkhash].js",
        path: path.resolve(__dirname, "..", "dist"),
    },
...

具体的三种hash 自己搜一下,网上说的挺全的

相关文章

  • 前后端分离系列-chunk

    demo https://github.com/757566833/webpack-guide 在加入缓存之后,我...

  • 前后端分离系列

    本系列不仅是文章,也会改动一些webpack的配置基于webpack从0开始搭建react的ts开发环境系列 在w...

  • 2019-08-29

    前后端分离 知识点 前后端分离对表单进行增删该查 views models 创建一个系列化的文件夹 serial...

  • StreamingMedia文章目录

    系列总结 RTMP协议总结 RTMP协议 01 RTMP入门RTMP协议 02 视频Chunk和音频Chunk到底...

  • 2019-01-11前后端分离

    什么是前后端分离? 为什么前后端分离? 前后端分离的优势? 未分离时期 MVC: 早期JSP+SERVLET中的结...

  • 前后端分离

    什么是前后端分离 前后端分离中前端负责页面路由控制,页面展示,后端处理数据,通过json进行传输。前后端分离并非仅...

  • vivo 商城前端架构升级—前后端分离篇

    本文主要以 vivo 商城项目的前后端分离经验,总结前后端分离思路,整理前后端分离方案,以及分离过程中遇到的问题及...

  • Spring Boot+Vue概述(一)

    前后端分离 前后端分离就是将⼀个应⽤的前端代码和后端代码分开写,为什么要这样做?如果不使⽤前后端分离的⽅式,会有哪...

  • 前后端分离

    方案一 简易前后端分离 前后端分离原则,简单来讲就是前端和后端的代码分离,也就是技术上做分离,我们推荐的模式是最好...

  • 六大接口管理平台,总有一款适合你的!

    前后端分离绕不开的接口测试 先聊一聊前端和后端分离的优点。前后端分离优点如下: 真正的实现前后端解耦,前端服务器使...

网友评论

      本文标题:前后端分离系列-chunk

      本文链接:https://www.haomeiwen.com/subject/cxnezctx.html