Bundle skriptova sa hešom u maketu u Webpacku
Uglavnom, prilikom build-ovanja projekta, želimo da imena bundle-ova sadrže heš. To nam je potrebno da bismo rešili problem keširanja fajlova od strane brauzera.
Zato je zgodno to što će Webpack automatski povezivati bundle-ove sa imenima koja sadrže heš. Hajde da proverimo. Neka imamo sledeće podešavanje:
export default {
context: path.resolve( 'src'),
entry: {
test1: './test1.js',
test2: './test2.js'
},
output: {
filename: '[name].[contenthash].js',
path: path.resolve('dist'),
},
plugins: [
new HtmlWebpackPlugin(),
],
};
Nakon build-ovanja, u fajl maketa će biti povezani naši bundle-ovi sa heševima:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Webpack App</title>
<script defer src="test1.4173b379c6d6ff439604.js"></script>
<script defer src="test2.72be8754d7c4cb0ece00.js"></script>
</head>
<body>
</body>
</html>
Pritom, kada se fajlovi projekta promene i ponovo se izvrši build, Webpack će automatski menjati heševe i unositi promene u fajl maketa. Ako se fajlovi projekta nisu menjali, onda se ni heš neće menjati.
Napravite tri ulazne tačke. Podesite tako da se oni build-uju u odvojene bundle-ove sa imenima koji sadrže heševe.
Izvršite build projekta. Uverite se da su u fajlu maketa povezani svi bundle-ovi.
Promenite tekst u izvornom fajlu jedne od ulaznih tačaka. Izvršite build. Proverite da će se heš bundle-a te tačke promeniti, a heševi ostalih bundle-ova - neće.