¡Hola Orlando! Supongamos que tenemos este archivo de configuración de webpack (resumido):
entry: {
index: ["./src/index.js", "./src/index.css"],
vendors: ["./src/vendors.js"]
},
output: {
filename: "[name].[hash].js"
}
plugins: [
new MiniCssExtractPlugin({
filename: "[name].[hash].css"
})
]
Primero vamos a aclarar los chunks, los chunks en este caso son los dos arreglos en nuestro entry point: index y vendors. Index es un trozo del código, vendors es otro. Cool. Ahora la diferencia entre hash, contenthash y chunkhash:
hash: Cuando hacemos build del proyecto, . Si hacemos un cambio en un archivo, y volvemos a hacer build del proyecto, todos los archivos van a tener este nuevo hash. Sencillo, ¿no? todos los archivos van a tener el mismo hash ya que todos los archivos provienen del mismo build
chunkhash: . En nuestro ejemplo los dos archivos del chunk “index” tienen un mismo hash y los archivos del chunk “vendors” tienen otro hash. Si hacemos cambios en un archivo del chunk index, estos van a tener un nuevo hash , y lo mismo sucede en caso contrario. ¿Me expliqué bien?
Todos los archivos pertenecientes al mismo chunk, van a tener el mismo hash pero los del chunk vendors no
contenthash: Más fácil aún, . Si un archivo sufre un cambio, solo este archivo tendrá un nuevo hash. Espero mi respuesta te sea de utilidad 😄
cada archivo tendrá su propio hash ya que el hash es generado apartir del contenido del archivo
By: Jsalen