Webpack中的文件指紋的實(shí)現(xiàn)
1. 什么是文件指紋?
文件指紋就是打包后輸出的文件名的后綴,主要用來(lái)對(duì)修改后的文件做版本區(qū)分。

2. 文件指紋有哪幾種?
1. Hash:和整個(gè)項(xiàng)目的構(gòu)建相關(guān),只要項(xiàng)目文件有修改,整個(gè)項(xiàng)目構(gòu)建的 hash 值就會(huì)更改,一般用于圖片設(shè)置;
2. Chunkhash:與 webpack 打包的 chunk 有關(guān),不同的 entry 會(huì)生成不同的 chunkhash 值,一般用于設(shè)置JS文件;
3. Contenthash:根據(jù)文件內(nèi)容來(lái)定義 hash ,文件內(nèi)容不變,則 contenthash 不變,一般用于設(shè)置CSS文件;
3. JS的文件指紋設(shè)置;
'use strict';
const path = require('path');
module.exports = {
entry: {
index: './src/index.js',
search: './src/search.js'
},
output: {
path: path.join(__dirname, 'dist'),
// 設(shè)置chunkhash,長(zhǎng)度為8位
filename: '[name]_[chunkhash:8].js'
}
};4. CSS的文件指紋設(shè)置;
'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({
// 設(shè)置CSS為contenthash,長(zhǎng)度為8位
filename: '[name]_[contenthash:8].css'
})
]
};5. 圖片的文件指紋設(shè)置;
圖片文件的指紋設(shè)置使用file-loader,常用的占位符的含義如下:

圖片的文件指紋設(shè)置如下:
'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'),
// 設(shè)置JS的文件指紋為chunkhash,長(zhǎng)度為8位
filename: '[name]_[chunkhash:8].js'
},
mode: 'production',
module: {
rules: [
{
test: /.js$/,
use: 'babel-loader'
},
{
test: /.css$/,
use: [
// 去掉style-loader,將CSS單獨(dú)提取一個(gè)文件
MiniCssExtractPlugin.loader,
'css-loader'
]
},
{
test: /.less$/,
use: [
// 去掉style-loader,將CSS單獨(dú)提取一個(gè)文件
MiniCssExtractPlugin.loader,
'css-loader',
'less-loader'
]
},
{
test: /.(png|jpg|gif|jpeg)$/,
use: [
{
loader: 'file-loader',
options: {
// 設(shè)置的圖片指紋為hash,長(zhǎng)度為8位
name: '[name]_[hash:8].[ext]'
}
}
]
},
{
test: /.(woff|woff2|eot|ttf|otf)$/,
use: [
{
loader: 'file-loader',
options: {
// 設(shè)置字體的指紋為hash,長(zhǎng)度為8位
name: '[name]_[hash:8][ext]'
}
}
]
}
]
},
plugins: [
// 將CSS提取出來(lái)一個(gè)文件
new MiniCssExtractPlugin({
filename: '[name]_[contenthash:8].css'
})
]
};到此這篇關(guān)于Webpack中的文件指紋的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Webpack 文件指紋內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
js斷點(diǎn)調(diào)試經(jīng)驗(yàn)分享
給大家詳細(xì)分析了一下JS斷電調(diào)試的心得和經(jīng)驗(yàn),有需要的朋友參考一下吧。2017-12-12
JS實(shí)現(xiàn)禁止高頻率連續(xù)點(diǎn)擊的方法【基于ES6語(yǔ)法】
這篇文章主要介紹了JS實(shí)現(xiàn)禁止高頻率連續(xù)點(diǎn)擊的方法,通過(guò)事件監(jiān)聽(tīng)結(jié)合定時(shí)器實(shí)現(xiàn)針對(duì)高頻率點(diǎn)擊的限制操作,該功能基于ES6語(yǔ)法實(shí)現(xiàn),需要的朋友可以參考下2017-04-04
用Javascript同時(shí)提交多個(gè)Web表單的方法
使用Javascript同時(shí)提交多個(gè)Web表單的方法2009-12-12
詳解webpack+express多頁(yè)站點(diǎn)開(kāi)發(fā)
這篇文章主要介紹了詳解webpack+express多頁(yè)站點(diǎn)開(kāi)發(fā)2017-12-12
使用iframe實(shí)現(xiàn)pdf文件預(yù)覽功能
這篇文章主要為大家詳細(xì)介紹了如何使用iframe實(shí)現(xiàn)pdf文件預(yù)覽功能,以及iframe預(yù)覽報(bào)錯(cuò)問(wèn)題和iframe未能加載PDF文檔,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-09-09
JavaScript中判斷原生函數(shù)檢查function是否是原生代碼
檢查某個(gè)function是否是原生代碼,要檢測(cè)這一點(diǎn),最簡(jiǎn)單的辦法當(dāng)然是判斷函數(shù)的 toString 方法返回的值2014-09-09

