美文网首页
webpack基础(六) 文件指纹策略

webpack基础(六) 文件指纹策略

作者: Viewwei | 来源:发表于2021-01-19 14:36 被阅读0次
  • 什么是文件指纹
    文件指纹指打包之后输出文件名称的后缀
  • 有哪些指纹策略,分别代表什么意思
    指纹文件策略一共有三种,hash、chunkhash、contenthash
  • hash 策略:和整个项目相关,只要项目文件改变,整个项目构建的hash值都会改变
  • chunkhash: 和webpack打包的chunk有关,不同的entry会生成不同的chunkhash
  • contenthash:根据文件内容来定义hash,文件内容不变,则contenthash不变

测试不同的指纹策略

hash策略

  1. 配置hash,已css js为例为例子。在webpack中配置hash
  output: {
        filename: "[name][hash:8].js",
        path: path.resolve(__dirname, "./dist")
    },

css

  new MiniCssExtractPlugin({
            filename: "css/[name][hash:8].css"
        }),
  1. 打包结果


    image.png
  2. 在css 随便修改一下,重新打包.打包结果


    image.png
  • 总结
    hash策略只要文件改变,那么所有的文件都会发生改变。也就是重新打包

chunkhash策略

chunkhash策略是和chunk相关,因此需要在配置文件配置多入口

  1. 配置chunkhash,已css,js为例子
    js 配置
   entry: {
        index:"./src/index.js",
        a:"./src/a.js"
    },
    output: {
        filename: "[name]-[chunkhash:8].js",
        path: path.resolve(__dirname, "./dist")
    },

css配置

  new MiniCssExtractPlugin({
            filename: "css/[name][chunkhash:8].css"
        }),
  1. 指定结果


    image.png
  2. 修改a入口的入口文件(js)文件
image.png
  1. 发现修改a入口的文件,index入口不会改变
  2. 修改index入口中的css文件


    image.png

    6.发现index文件中的index.js和css文件都发生改变

  • 总结:
    chunkhash策略只和想对用的chunk相关,一个chunk的改变并不会对其他chunk文件进行重新打包。也就是所谓的关联文件

contenthash策略

  1. 配置conetnthash
 output: {
        filename: "[name]-[contenthash:8].js",
        path: path.resolve(__dirname, "./dist")
    },
   new MiniCssExtractPlugin({
            filename: "css/[name][contenthash:8].css"
        }),
  1. 执行结果


    image.png

    3.修改css文件:发现css文件名称改变 js文件不改变


    image.png
  • 总结;
    contenthash只已自己的文件为单位,并不影响其他文件的打包

常用配置(个人习惯)

个人喜欢把js文件配置成contenthash,把css文件配置成chunkhash。这样能保证更改js文件的时候,都会改变,如果只修改css,让它不影响js文件

相关文章

  • webpack基础(六) 文件指纹策略

    什么是文件指纹文件指纹指打包之后输出文件名称的后缀 有哪些指纹策略,分别代表什么意思指纹文件策略一共有三种,has...

  • webpack文件指纹策略

    概念 打包后输出的文件名后缀,用于做版本管理 文件指纹类型 Hash:和整个项目的构建相关,只要项目文件有修改,整...

  • webpack 文件指纹

    优点: 用作版本管理时,如果一个项目需要发布,只需要发布修改过的文件指纹; 对于没有修改过的文件,用户在访问的时候...

  • webpack之文件指纹

    css文件指纹需要安装插件

  • webpack之文件指纹

    什么是文件指纹? 打包后输出的文件名的后缀,这个文件指纹通常是用来做版本的管理 文件指纹如何生成 Hash:和整个...

  • webpack之文件指纹

    原文链接 https://blog.csdn.net/weixin_43675447/article/detail...

  • webpack 基础一 1002

    webpack 基础一 1.webpack开篇 2.webpack配置文件 2.1 js代码如下 2.2 配置文件...

  • 浅析webpack 打包模块

    以下分析都是基于webpack4。 首先写一个最基础的webpack配置工程文件: 入口文件index.js如下:...

  • Webpack 4 学习03(配置入口和出口的进阶使用)

    前提:知道webpack4的基础配置以及如何使用配置文件进行打包第一讲 Webpack 4 学习01(基础配置) ...

  • webpack基础配置使用

    默认的配置文件webpack.config.js 基础配置示例 打包后的文件和文件目录

网友评论

      本文标题:webpack基础(六) 文件指纹策略

      本文链接:https://www.haomeiwen.com/subject/gxbqzktx.html