Scriptien bundlet hash-tunnisteella Webpackin asettelussa
Yleensä haluamme, että projektin kokoamisen yhteydessä bundlet sisältävät hash-tunnisteet. Tarvitsemme tätä ratkaistaksemme selaimen tiedostojen välimuistin ongelman.
Siksi on kätevää, että Webpack liittää automaattisesti bundlet, joiden nimissä on hash-tunnisteet. Kokeillaan. Oletetaan, että meillä on seuraavat asetukset:
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(),
],
};
Kokoamisen jälkeen asettelutiedostoon on liitetty bundlemme hash-tunnisteilla:
<!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>
Samalla, kun projektin tiedostoja muutetaan ja kokoaminen suoritetaan uudelleen, Webpack muuttaa automaattisesti hash-tunnisteet ja tekee muutoksia asettelutiedostoon. Jos projektin tiedostoja ei ole muutettu, hash-tunniste ei myöskään muutu.
Tee kolme tulopistettä. Tee niin, että ne kootaan erillisiksi bundleiksi, joiden nimissä on hash-tunnisteet.
Suorita projektin kokoaminen. Varmista, että asettelutiedostoon on liitetty kaikki bundlet.
Muuta tekstiä yhden tulopisteen lähdetiedostossa. Suorita kokoaminen. Tarkista, että kyseisen tulopisteen bundlen hash-tunniste muuttuu, mutta muiden bundlien hash-tunnisteet eivät muutu.