hash、chunkhash和contenthash

简介: webpack 通用配置优化

webpack.config.js配置如下:

const path = require('path')
const HtmlWebpackPlugin = require('html-webpack-plugin')
const MiniCssExtractPlugin = require('mini-css-extract-plugin')

module.exports = {
  entry: {
    main: './src/index.js',
    vender: ['lodash']
  },
  mode: 'development',
  output: {
    path: path.resolve(__dirname, 'dist'),
    filename: '[name].[hash].js'
  },
  module: {
    rules: [
      { test: /\.css/, use: [MiniCssExtractPlugin.loader, 'css-loader'] }
    ]
  },
  plugins: [
    new HtmlWebpackPlugin({
      template: './public/template.html'
    }),
    new MiniCssExtractPlugin({
      filename: 'css/[name].[hash].css'
    })
  ]
}

hash

第一次我们尝试使用hash打包

在这里插入图片描述

生成的hash值是63f9504be8bb69da6b5c
然后我们再改动index.js把 console.log('1') 变成 console.log('2')

在这里插入图片描述
生成的hash值是7dcbf720332877689f08

使用hash存在的问题:我只改动main里面的代码,css代码没有变化不应该打包, 公共的JS代码vender没有变化也不应该打包。

chunkhash

第二次我们把webpack.config.js里面的hash换成chunkhash再试试

在这里插入图片描述
生成的hash值是6ddad8554b64e9367d10
然后我们再改动index.js把 console.log('1') 变成 console.log('2')

在这里插入图片描述
生成的hash值是52804c9231136d999383

优化了公共的JS代码vender不会打包了

使用hash存在的问题:我只改动main里面的代码,css代码没有变化不应该打包

contenthash

第三次我们把webpack.config.js里面的css部分配置chunkhash换成contenthash再试试,因为JS的问题解决了,只剩下CSS的问题。

在这里插入图片描述
生成的hash值是2ffc70412efa0447f65c
然后我们再改动index.js把 console.log('1') 变成 console.log('2')

在这里插入图片描述
我们只改动入口文件,所以只会打包入口文件main,其他文件都不会重新打包。
优化了CSS代码不会打包了

总结:最佳配置如下:

const path = require('path')
const HtmlWebpackPlugin = require('html-webpack-plugin')
const MiniCssExtractPlugin = require('mini-css-extract-plugin')

module.exports = {
  entry: {
    main: './src/index.js',
    vender: ['lodash']
  },
  mode: 'development',
  output: {
    path: path.resolve(__dirname, 'dist'),
    filename: '[name].[chunkhash].js'
  },
  module: {
    rules: [
      { test: /\.css/, use: [MiniCssExtractPlugin.loader, 'css-loader'] }
    ]
  },
  plugins: [
    new HtmlWebpackPlugin({
      template: './public/template.html'
    }),
    new MiniCssExtractPlugin({
      filename: 'css/[name].[contenthash].css'
    })
  ]
}
相关文章
|
网络安全 网络架构
ENSP-Kali环境联动
1.ENSP介绍 eNSP(Enterprise Network Simulation Platform)是一款由华为提供的免费的、可扩展的、图形化的网络设备仿真平台,主要对企业网路由器、交换机、WLAN等设备进行软件仿真,完美呈现真实设备部署实景,支持大型网络模拟,让你有机会在没有真实设备的情况下也能够开展实验测试,学习网络技术。
1189 0
ENSP-Kali环境联动
|
3月前
|
传感器 人工智能 监控
医院不良事件管理系统:PDCA持续改进,形成事件的整改闭环管理
医院安全事件管理系统通过全流程闭环管理、多维度分析与RCA根因分析,助力上报与处理高效协同,支持智能流转、风险预警与持续改进,提升医疗质量与患者安全。
467 5
|
1月前
|
人工智能 自然语言处理 算法
构建AI智能体:二十六、语言模型的“解码策略”:一文读懂AI文本生成的采样方法
本文探讨了AI文本生成中的采样方法,这些方法决定了AI如何选择候选词来生成文本。文章介绍了两种主要方法:确定性方法(贪心算法和束搜索)和随机采样方法(基础随机采样、温度采样、Top-k采样和Top-p采样)。贪心算法每次选择概率最高的词,生成结果可靠但缺乏创意;束搜索保留多条候选路径,适合需要准确性的任务。随机采样方法则通过引入随机性增加多样性,其中温度采样通过调整温度参数控制创意的随机程度,Top-p采样则动态选择候选词集合,是目前创造性任务的首选方法。
223 11
|
4月前
|
存储 Java PHP
轻量化短视频电商直播带货APP源码全解析:核心功能与设计流程​
在电商直播热潮下,开发专属直播带货APP成为抢占市场关键。本文详解原生开发轻量化APP的核心功能与全流程设计,涵盖用户登录、商品浏览、直播互动、购物车、订单及售后功能,并介绍安卓端Java、苹果端Object-C、后台PHP的技术实现,助力打造高效优质的直播电商平台。
|
Web App开发 JSON 前端开发
Webpack【搭建Webpack环境、Webpack增加配置文件、Webpack中使用Loader、Webpack分离CSS文件 】(一)-全面详解(学习总结---从入门到深化)
Webpack【搭建Webpack环境、Webpack增加配置文件、Webpack中使用Loader、Webpack分离CSS文件 】(一)-全面详解(学习总结---从入门到深化)
474 0
|
7月前
|
人工智能 分布式计算 大数据
MCP、MaxFrame与大数据技术全景解析
本文介绍了 MCP 协议、MaxFrame 分布式计算框架以及大数据基础设施建设的相关内容。MCP(Model Context Protocol)是一种开源协议,旨在解决 AI 大模型与外部数据源及工具的集成问题,被比喻为大模型的“USB 接口”,通过统一交互方式降低开发复杂度。其核心架构包括 Client、Server、Tool 和 Schema 四个关键概念,并在百炼平台中得到实践应用。MaxFrame 是基于 Python 的高性能分布式计算引擎,支持多模态数据处理与 AI 集成,结合 MaxCompute 提供端到端的数据处理能力。
Echarts visualMap属性记录
这篇文章是关于ECharts中visualMap属性的详细记录。文中首先定义了visualMap的作用,即进行数据到视觉元素的映射。接着,通过一系列详细的配置参数,如类型、显示控制、数据范围、样式和格式化工具等,介绍了如何配置连续型和分段型visualMap组件。最后,作者通过具体代码示例,说明了如何将这些配置应用于实际的ECharts图表中,以实现数据的视觉编码效果。
1336 0
Echarts visualMap属性记录
|
移动开发 JavaScript 前端开发
ThreeJs简介
这篇文章介绍了Three.js的基础知识,包括其相对于WebGL的优势以及如何使用Three.js创建基本的3D场景。
662 1
|
存储 缓存 数据处理
深度解析:Hologres分布式存储引擎设计原理及其优化策略
【10月更文挑战第9天】在大数据时代,数据的规模和复杂性不断增加,这对数据库系统提出了更高的要求。传统的单机数据库难以应对海量数据处理的需求,而分布式数据库通过水平扩展提供了更好的解决方案。阿里云推出的Hologres是一个实时交互式分析服务,它结合了OLAP(在线分析处理)与OLTP(在线事务处理)的优势,能够在大规模数据集上提供低延迟的数据查询能力。本文将深入探讨Hologres分布式存储引擎的设计原理,并介绍一些关键的优化策略。
714 0
|
人工智能 前端开发 小程序
WordPress网站访问慢解决方案(超详细图文教程)
WordPress网站访问慢解决方案(超详细图文教程)
432 0