网络编程
位置:首页>> 网络编程>> JavaScript>> Webpack中的文件指纹的实现

Webpack中的文件指纹的实现

作者:aiguangyuan  发布时间:2024-04-10 11:00:17 

标签:Webpack,文件指纹

1. 什么是文件指纹?

文件指纹就是打包后输出的文件名的后缀,主要用来对修改后的文件做版本区分。

Webpack中的文件指纹的实现

2. 文件指纹有哪几种?

1. Hash:和整个项目的构建相关,只要项目文件有修改,整个项目构建的 hash 值就会更改,一般用于图片设置;

2. Chunkhash:与 webpack 打包的 chunk 有关,不同的 entry 会生成不同的 chunkhash 值,一般用于设置JS文件;

3. Contenthash:根据文件内容来定义 hash ,文件内容不变,则 contenthash 不变,一般用于设置CSS文件;

3. JS的文件指纹设置;

'use strict';

const path = require('path');

module.exports = {
   entry: {
       index: './src/index.js',
       search: './src/search.js'
   },
   output: {
       path: path.join(__dirname, 'dist'),
       // 设置chunkhash,长度为8位
       filename: '[name]_[chunkhash:8].js'
   }
};

4. CSS的文件指纹设置;

'use strict';

const path = require('path');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');

module.exports = {

entry: {
       index: './src/index.js',
       search: './src/search.js'
   },

output: {
       path: path.join(__dirname, 'dist'),
       filename: '[name]_[chunkhash:8].js'
   },

plugins: [
       new MiniCssExtractPlugin({
           // 设置CSS为contenthash,长度为8位
           filename: '[name]_[contenthash:8].css'
       })
   ]
};

5. 图片的文件指纹设置;

图片文件的指纹设置使用file-loader,常用的占位符的含义如下:

Webpack中的文件指纹的实现

图片的文件指纹设置如下:

'use strict';

const path = require('path');
// npm i mini-css-extract-plugin -D
const MiniCssExtractPlugin = require('mini-css-extract-plugin');

module.exports = {
   entry: {
       index: './src/index.js',
       search: './src/search.js'
   },
   output: {
       path: path.join(__dirname, 'dist'),
       // 设置JS的文件指纹为chunkhash,长度为8位
       filename: '[name]_[chunkhash:8].js'
   },
   mode: 'production',
   module: {
       rules: [
           {
               test: /.js$/,
               use: 'babel-loader'
           },
           {
               test: /.css$/,
               use: [
                   // 去掉style-loader,将CSS单独提取一个文件
                   MiniCssExtractPlugin.loader,
                   'css-loader'
               ]
           },
           {
               test: /.less$/,
               use: [
                   // 去掉style-loader,将CSS单独提取一个文件
                   MiniCssExtractPlugin.loader,
                   'css-loader',
                   'less-loader'
               ]
           },
           {
               test: /.(png|jpg|gif|jpeg)$/,
               use: [
                   {
                       loader: 'file-loader',
                       options: {
                           // 设置的图片指纹为hash,长度为8位
                           name: '[name]_[hash:8].[ext]'
                       }
                   }
               ]
           },
           {
               test: /.(woff|woff2|eot|ttf|otf)$/,
               use: [
                   {
                       loader: 'file-loader',
                       options: {
                           // 设置字体的指纹为hash,长度为8位
                           name: '[name]_[hash:8][ext]'
                       }
                   }
               ]
           }
       ]
   },
   plugins: [
       // 将CSS提取出来一个文件
       new MiniCssExtractPlugin({
           filename: '[name]_[contenthash:8].css'
       })
   ]
};

来源:https://blog.csdn.net/weixin_40629244/article/details/128539863

0
投稿

猜你喜欢

  • 一、python开发环境安装与配置1.python的下载从https://www.python.org/downloads/进行下载。2.安
  • win10 Python3.7安装keras深度学习集成包 TensorFlow 和Ubuntu下安装keras在win10下安装安装时必须
  • k-近邻算法概述简单地说,k近邻算法采用测量不同特征值之间的距离方法进行分类。k-近邻算法优点:精度高、对异常值不敏感、无数据输入假定。缺点
  • python中字典是非常常用的数据类型,了解各种方法的作用及优缺点对于字典的使用非常有用。dict.clear() 的方法用于清空所有的键值
  • 在我们做搜索的时候经常要用到模糊查询 (注:其中name1,name2,name3,name4为数据库字段) 1.方法 sql="
  • PyTorch基础入门一:PyTorch基本数据类型1)Tensor(张量)Pytorch里面处理的最基本的操作对象就是Tensor(张量)
  • 前言本文给大家介绍的是利用Python抓取手机归属地信息,文中给出了详细的示例代码,相信对大家的理解和学习很有帮助,以下为Python代码,
  • 变量的存储在高级语言中,变量是对内存及其地址的抽象。对于python而言,python的一切变量都是对象,变量的存储,采用了引用语义的方式,
  • 其实相信每个和mysql打过交道的程序员都应该会尝试去封装一套mysql的接口,这一次的封装已经记不清是我第几次了,但是每一次我希望都能做的
  • '====================================='功能:根据ip地址输出地区'参数:ip
  • 锁分类:从对数据操作的粒度分 :表锁:操作时,会锁定整个表。行锁:操作时,会锁定当前操作行。从对数据操作的类型分:读锁(共享锁):针对同一份
  • 处理页面中的间歇无缝滚动新闻的时候,最常见的方法就是将滚动区内容复制追加一份,然后通过控制和判断滚动块的scrollTop来实现滚动停止效果
  • 一个网站信息结构需要表现给用户看,这样用户才能知道当前是在哪儿,才有可能去猜测某个内容可能会在哪儿。如何表现网站的信息结构给用户呢?用导航。
  • 有时候在一个页面用到收放功能的时候时,总有一个虚线框在触发收放的功能按钮上,显得特别刺眼,那如何去除这个虚线框呢?在IE下,需要在标签 a
  • 在众多的浏览器产品中,IE、Firefox、Opera、Safari........众多品牌却标准不一,因此时常需要根据不同的浏览器,甚至相
  • 在现代软件开发中,配置文件是不可或缺的一部分。在编写 Go 项目时,不管是一个简单的单文件脚本还是一个庞大的微服务项目,程序的灵活性和可扩展
  • 效果图:该效果主要实现一个table展示数据,并在下方生成一个折线图。实现方式:1、首先需要对表格进行一个数据加载,这里用到了layui的t
  • 1. 确认已经安装了NT/2000和SQL Server的最新补丁程序,不用说大家应该已经安装好了,但是我觉得最好还是在这里提醒一下。2.
  • 我所接触的多标签数据,主要包括两类:1、一张图片属于多个标签,比如,data:一件蓝色的上衣图片.jpg,label:蓝色,上衣。其中lab
  • 后来查了一些相关资料,发现在IE 中通过 window.location.href 或者是 是无法获取HTTP_REFERER, 真是搞不懂
手机版 网络编程 asp之家 www.aspxhome.com