Webpack中的文件指纹的实现

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

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

标签:Webpack,文件指纹
0
投稿

猜你喜欢

  • sql server 编译与重编译详解

    2024-01-14 11:02:59
  • MySQL 加密/压缩函数

    2024-01-23 23:51:14
  • 使用Abot中文分词组件来开发ASP站内搜索引擎

    2007-10-18 13:36:00
  • 利用Python进行异常值分析实例代码

    2022-06-30 16:14:59
  • mysql 数据库安装经验问题汇总

    2024-01-28 11:55:29
  • Go 语言前缀树实现敏感词检测

    2024-05-05 09:27:18
  • PHP中最低级别的错误类型总结

    2023-09-04 16:46:17
  • Python hashlib加密模块常用方法解析

    2022-03-11 05:20:05
  • 利用PHP函数计算中英文字符串长度的方法

    2023-10-13 16:35:46
  • 基于JS实现经典的井字棋游戏

    2024-04-28 09:51:10
  • Python数据处理之pd.Series()函数的基本使用

    2022-09-29 08:50:21
  • Python3一行代码实现图片文字识别的示例

    2021-11-22 06:45:51
  • Golang+Vue轻松构建Web应用的方法步骤

    2024-05-29 22:06:42
  • Go语言学习笔记之错误和异常详解

    2024-02-05 11:39:15
  • Tensorflow2.4使用Tuner选择模型最佳超参详解

    2023-07-19 19:46:22
  • Python Tensor FLow简单使用方法实例详解

    2022-01-01 16:55:44
  • 在 Golang 中实现一个简单的Http中间件过程详解

    2024-05-09 14:55:35
  • 学以致用驳ASP低能论

    2007-08-22 14:47:00
  • python爬虫入门教程--优雅的HTTP库requests(二)

    2022-04-01 05:10:43
  • MySql数据类型教程示例详解

    2024-01-27 05:23:47
  • asp之家 网络编程 m.aspxhome.com