<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Harry Ermawan</title>
    <description>The latest articles on DEV Community by Harry Ermawan (@hryer).</description>
    <link>https://dev.to/hryer</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F252385%2F9e0a38a1-0af3-4ad8-806a-6bb9903e3e1e.jpeg</url>
      <title>DEV Community: Harry Ermawan</title>
      <link>https://dev.to/hryer</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/hryer"/>
    <language>en</language>
    <item>
      <title>Hash pada Webpack</title>
      <dc:creator>Harry Ermawan</dc:creator>
      <pubDate>Sun, 04 Oct 2020 06:17:14 +0000</pubDate>
      <link>https://dev.to/hryer/hash-pada-webpack-3fjg</link>
      <guid>https://dev.to/hryer/hash-pada-webpack-3fjg</guid>
      <description>&lt;h2&gt;
  
  
  Hash
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fjm7tnnt68mudc3tlut3b.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fjm7tnnt68mudc3tlut3b.jpg" alt="Alt Text" width="400" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;TLDR; Hash adalah suatu kode dari hasil enkripsi yang umumnya terdiri dari huruf maupun angka yang acak. Fungsi / pengunaan Hash sendiri dalam webpack yang digunakan umumnya untuk menghindari duplikasi ketika terjadinya update pada JS / saat melakukan update. Lalu bagaimana penggunaan hash yang tepat ketika kita melakukan konfigurasi pada webpack? &lt;/p&gt;

&lt;h2&gt;
  
  
  Perbedaan dan jenis hash pada webpack
&lt;/h2&gt;

&lt;p&gt;Hashing dapat digunakan dengan menggunakan kurung siku pada script webpack dan Hash sendiri memilik jenis / tipe yang sering digunakan ketika membuat script webpack.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. [hash]&lt;/strong&gt;&lt;br&gt;
Ketika kita menggunakan hash maka ketika setiap build terjadi perubahan maka chunk sendiri akan membuat hash baru. &lt;/p&gt;

&lt;p&gt;contoh :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;module&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;exports&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;//...&lt;/span&gt;
  &lt;span class="na"&gt;output&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;filename&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;[name].[hash].bundle.js&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;2. [Chunkhash]&lt;/strong&gt;&lt;br&gt;
Ketika menggunakan chunkchash maka ketika setiap build terjadi &lt;br&gt;
perubahan pada chunk hanya chunk tertentu saja atau chunk yang entry pointnya terjadi perubahan. Maka dalam perubahan ini dalam kasus webpack ini sangat cocok digunakan untuk menghash file javascript.&lt;/p&gt;

&lt;p&gt;contoh:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;module&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;exports&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;//...&lt;/span&gt;
  &lt;span class="na"&gt;output&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;filename&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;[chunkhash].bundle.js&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;3. [Contenthash]&lt;/strong&gt;&lt;br&gt;
Contenthash sering digunakan untuk menghash file css karena jika menggunakan hash yang sama dengan hash pada javascript maka ketika terjadi update pada entry css tersebut maka chunk file css hashnya tidak akan terganti untuk menghindari case seperti ini maka lebih baik menggunakan contenthash.&lt;/p&gt;

&lt;p&gt;contoh:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;module&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;exports&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;//...&lt;/span&gt;
  &lt;span class="na"&gt;output&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;filename&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;[contenthash].bundle.css&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  NOTES
&lt;/h3&gt;

&lt;h4&gt;
  
  
  Slicing hash
&lt;/h4&gt;

&lt;p&gt;Jika hash dirasa terlalu panjang kita dapat menggunakan &lt;code&gt;[hash:8]&lt;/code&gt; maka hash yang dihasilkan akan menjadi seperti &lt;code&gt;8c4cbfdb&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Referensi untuk dipelajari :&lt;br&gt;
&lt;a href="https://medium.com/@sahilkkrazy/hash-vs-chunkhash-vs-contenthash-e94d38a32208" rel="noopener noreferrer"&gt;https://medium.com/@sahilkkrazy/hash-vs-chunkhash-vs-contenthash-e94d38a32208&lt;/a&gt;&lt;br&gt;
&lt;a href="https://webpack.js.org/guides/caching/" rel="noopener noreferrer"&gt;https://webpack.js.org/guides/caching/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://webpack.js.org/configuration/output/" rel="noopener noreferrer"&gt;https://webpack.js.org/configuration/output/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://codeburst.io/long-term-caching-of-static-assets-with-webpack-1ecb139adb95" rel="noopener noreferrer"&gt;https://codeburst.io/long-term-caching-of-static-assets-with-webpack-1ecb139adb95&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webpack</category>
      <category>hash</category>
      <category>optimize</category>
      <category>caching</category>
    </item>
  </channel>
</rss>
