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:

webpack.config.jsexport 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:

dist/index.html<!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.

Задание 1

Napravite tri ulazne tačke. Podesite tako da se oni build-uju u odvojene bundle-ove sa imenima koji sadrže heševe.

Задание 2

Izvršite build projekta. Uverite se da su u fajlu maketa povezani svi bundle-ovi.

Задание 3

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.