最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

webpack打包的3種hash值詳解

 更新時間:2022年07月06日 15:50:03   作者:Sunshine_Lin  
這篇文章主要為大家介紹了webpack打包的3種hash值詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

前言

大家好,我是林三心,用最通俗易懂的話講最難的知識點是我的座右銘,基礎是進階的前提是我的初心

當年的校招

依稀記得,當年我參加了大廠的校招,面試的是網(wǎng)易雷火工作室,當時有一道題,我記得很清楚,就是:說說webpack中三種hash配置的區(qū)別

哈哈,我當時連webpack都不太會配置,所以也答不出來,然后也。。。沒有然后了。。

哪三種?

webpack中的三種hash分別是:

  • hash:全局hash
  • chunkhash:分組hash
  • contenthash:內容hash

實踐講解

事先準備

準備三個文件:

  • main.js
import './main.css'

console.log('我是main.js')
  • console.js
console.log('我是console.js')
  • main.css
.title {
  color: #000;
}

打包環(huán)境搭建

打包環(huán)境的搭建我就不在這里詳細講了,想看的之后我會出一篇文章專門講解。這里我就抽取精華部分。

  • webpack.config.js
// 多入口打包
entry: {
    main: './src/main.js',
    console: './src/console.js'
  },
// 輸出配置
output: {
    path: path.resolve(__dirname, './dist'),
    // 這里預設為hash
    filename: 'js/[name].[hash].js',
    clean: true
  },
plugins: [
      // 打包css文件的配置
      new MiniCssExtractPlugin({
      // 這里預設為hash
      filename: 'styles/[name].[hash].css'
    })
]

hash

由于我們預設的是hash,所以我們直接運行打包npm run build,我們看看我們打包后的是什么東西

可以看到,所有文件的文件名hash值都是一致的,那我們現(xiàn)在改一下main.css這個文件

.title {
  // #000 改成 #fff
  color: #fff;
}

然后我們再運行npm run build打包,看看打包后的是什么東西:

可以看出,修改一個文件,所有文件的hash值跟著變

結論:牽一發(fā)動全身,只改了一個main.css,會導致打包后所有文件的hash值都改變。所以當打包名稱設置為hash時,整個項目文件是一致的,修改其中一個會導致所有跟著一起改。

chunkhash

我們把輸出文件名規(guī)則修改為chunkhash:

entry: {
    main: './src/main.js',
    console: './src/console.js'
  },
output: {
    path: path.resolve(__dirname, './dist'),
    // 修改為 chunkhash
修改    filename: 'js/[name].[chunkhash].js',
    clean: true
  },
plugins: [
      new MiniCssExtractPlugin({
      // 修改為 chunkhash
修改      filename: 'styles/[name].[chunkhash].css'
    })
]

此時我們運行npm run build看看,打包后的東西:

我們可以看出,hash值會根據(jù)入口文件的不同而分出兩個陣營:

  • main.js、main.css一個陣營,都屬于main.js入口文件
  • console.js一個陣營,屬于console.js入口文件

那我們現(xiàn)在照樣修改一下main.css:

.title {
  // 從 #fff 改為 pink
  color: pink;
}

重新運行npm run build打包看看:

可以看出,main.css修改后會影響main.css、main.js的hash值

結論:當規(guī)則為chunkhash時,打包后的hash值會根據(jù)入口文件的不用而不一樣,當某個入口文件修改后重新打包,會導致本入口文件關聯(lián)的所有文件的hash值都修改,但是不會影響到其他入口文件的hash值

contenthash

我們把輸出文件名規(guī)則修改為contenthash:

entry: {
    main: './src/main.js',
    console: './src/console.js'
  },
output: {
    path: path.resolve(__dirname, './dist'),
    // 修改為 contenthash
修改    filename: 'js/[name].[contenthash].js',
    clean: true
  },
plugins: [
      new MiniCssExtractPlugin({
      // 修改為 contenthash
修改      filename: 'styles/[name].[contenthash].css'
    })
]

運行npm run build打包,看看打包后的文件長什么樣子:

可以看到,每個文件的hash值都不一樣,每個文件的hash值都是根據(jù)自身的內容去生成的,那我們現(xiàn)在修改一下main.css:

.title {
  // pink 修改為 blue
  color: blue;
}

重新打包看看:

可以看出,main.css修改后只會影響main.css得hash值,也就是自己的hash值

結論:當規(guī)則為contenthash時,每個文件的hash值都是根據(jù)自身內容而生成,當某個文件內容修改時,打包后只會修改其本身的hash值,不會影響其他文件的hash值

以上就是webpack打包的3種hash值詳解的詳細內容,更多關于webpack打包hash值的資料請關注腳本之家其它相關文章!

相關文章

  • javascript給span標簽賦值的方法

    javascript給span標簽賦值的方法

    本篇文章通過兩種方法給大家介紹js給span標簽賦值的方法,兩種方法都比較不錯,特此分享給大家,供大家學習
    2015-11-11
  • JavaScript實現(xiàn)網(wǎng)頁版五子棋游戲

    JavaScript實現(xiàn)網(wǎng)頁版五子棋游戲

    這篇文章主要為大家詳細介紹了JavaScript實現(xiàn)網(wǎng)頁版五子棋游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • js includes方法的使用小結

    js includes方法的使用小結

    JavaScript中的數(shù)組includes()方法用于判斷數(shù)組中是否包含指定的元素,并返回一個布爾值,這篇文章主要介紹了js includes方法的使用,需要的朋友可以參考下
    2024-01-01
  • 關于頁面被攔截的問題

    關于頁面被攔截的問題

    先來看一下幾個常用瀏覽器的攔截設置
    2010-02-02
  • js模糊查詢實例分享

    js模糊查詢實例分享

    本文主要分享了js模糊查詢的實現(xiàn)代碼,沒有接觸到后臺數(shù)據(jù)的知識,只是查詢當前表格中每一行所包含的關鍵字。具有一定的參考價值,需要的朋友一起來看下吧
    2016-12-12
  • 微信小程序提交form操作示例

    微信小程序提交form操作示例

    這篇文章主要介紹了微信小程序提交form操作,結合實例形式分析了微信小程序開發(fā)中使用form組件實現(xiàn)數(shù)據(jù)提交與數(shù)據(jù)處理相關操作技巧,需要的朋友可以參考下
    2018-12-12
  • JS實現(xiàn)網(wǎng)頁導航條特效

    JS實現(xiàn)網(wǎng)頁導航條特效

    這篇文章主要為大家詳細介紹了JS實現(xiàn)網(wǎng)頁導航條特效,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • js下拉選擇框與輸入框聯(lián)動實現(xiàn)添加選中值到輸入框的方法

    js下拉選擇框與輸入框聯(lián)動實現(xiàn)添加選中值到輸入框的方法

    這篇文章主要介紹了js下拉選擇框與輸入框聯(lián)動實現(xiàn)添加選中值到輸入框的方法,涉及javascript中onchange事件及頁面元素遍歷的相關技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-08-08
  • JS如何設置元素樣式的方法示例

    JS如何設置元素樣式的方法示例

    本篇文章主要介紹了JS如何設置元素樣式的方法示例,主要介紹了三種方法,具有一定的參考價值,有興趣的可以了解一下
    2017-08-08
  • 詳解JavaScript的流程控制語句

    詳解JavaScript的流程控制語句

    這篇文章主要介紹了JavaScript的流程控制語句,感興趣的小伙伴們可以參考一下
    2015-11-11

最新評論

衡阳市| 原平市| 武宣县| 大邑县| 新巴尔虎左旗| 特克斯县| 奉节县| 四平市| 聊城市| 元朗区| 吉林省| 洪江市| 博爱县| 罗山县| 民权县| 望城县| 莱西市| 东平县| 江西省| 蓬安县| 阳西县| 合阳县| 昂仁县| 长海县| 富民县| 鹤庆县| 安远县| 崇仁县| 梅州市| 昌平区| 调兵山市| 隆林| 榕江县| 福贡县| 嘉荫县| 黔东| 大埔区| 寻乌县| 临泽县| 沅陵县| 报价|