<h1 dir="auto">Bug report</h1>
<p dir="auto">(This is a continuation of <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="326079746" data-permission-text="Title is private" data-url="https://github.com/webpack/webpack/issues/7381" data-hovercard-type="issue" data-hovercard-url="/webpack/webpack/issues/7381/hovercard" href="https://github.com/webpack/webpack/issues/7381">#7381</a>, which solved part but not all of the issue.  I <em>think</em> this is a bug.  It's possible it's a feature I don't yet understand.  Apologies in advance for the verbose bug report...)</p>
<p dir="auto"><strong>What is the current behavior?</strong></p>
<p dir="auto">When using the split chunks plugin, the resulting compilation chunks sometimes have duplicate ids.   For example, I added this debugging hook to my webpack config:</p>
<div class="highlight highlight-source-js notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="  compiler.hooks.afterEmit.tap(&quot;log-dupe-chunks&quot;, function(compilation) {
    let chunks = compilation.chunks;
    let chunkIds = chunks.map(c =&gt; c.id);
    let dupeChunks = chunks
      .filter(c =&gt; chunkIds.filter(i =&gt; i === c.id).length &gt; 1)
      .map(c =&gt;
        pick(c, [&quot;id&quot;, &quot;ids&quot;, &quot;debugId&quot;, &quot;name&quot;, &quot;entryModule&quot;, &quot;files&quot;, &quot;rendered&quot;, &quot;hash&quot;, &quot;contentHash&quot;, &quot;renderedHash&quot;, &quot;chunkReason&quot;, &quot;extraAsync&quot;])
      );
    if (dupeChunks.length) {
      console.log(dupeChunks);
    }
  });
"><pre class="notranslate">  <span class="pl-s1">compiler</span><span class="pl-kos">.</span><span class="pl-c1">hooks</span><span class="pl-kos">.</span><span class="pl-c1">afterEmit</span><span class="pl-kos">.</span><span class="pl-en">tap</span><span class="pl-kos">(</span><span class="pl-s">"log-dupe-chunks"</span><span class="pl-kos">,</span> <span class="pl-k">function</span><span class="pl-kos">(</span><span class="pl-s1">compilation</span><span class="pl-kos">)</span> <span class="pl-kos">{</span>
    <span class="pl-k">let</span> <span class="pl-s1">chunks</span> <span class="pl-c1">=</span> <span class="pl-s1">compilation</span><span class="pl-kos">.</span><span class="pl-c1">chunks</span><span class="pl-kos">;</span>
    <span class="pl-k">let</span> <span class="pl-s1">chunkIds</span> <span class="pl-c1">=</span> <span class="pl-s1">chunks</span><span class="pl-kos">.</span><span class="pl-en">map</span><span class="pl-kos">(</span><span class="pl-s1">c</span> <span class="pl-c1">=&gt;</span> <span class="pl-s1">c</span><span class="pl-kos">.</span><span class="pl-c1">id</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
    <span class="pl-k">let</span> <span class="pl-s1">dupeChunks</span> <span class="pl-c1">=</span> <span class="pl-s1">chunks</span>
      <span class="pl-kos">.</span><span class="pl-en">filter</span><span class="pl-kos">(</span><span class="pl-s1">c</span> <span class="pl-c1">=&gt;</span> <span class="pl-s1">chunkIds</span><span class="pl-kos">.</span><span class="pl-en">filter</span><span class="pl-kos">(</span><span class="pl-s1">i</span> <span class="pl-c1">=&gt;</span> <span class="pl-s1">i</span> <span class="pl-c1">===</span> <span class="pl-s1">c</span><span class="pl-kos">.</span><span class="pl-c1">id</span><span class="pl-kos">)</span><span class="pl-kos">.</span><span class="pl-c1">length</span> <span class="pl-c1">&gt;</span> <span class="pl-c1">1</span><span class="pl-kos">)</span>
      <span class="pl-kos">.</span><span class="pl-en">map</span><span class="pl-kos">(</span><span class="pl-s1">c</span> <span class="pl-c1">=&gt;</span>
        <span class="pl-en">pick</span><span class="pl-kos">(</span><span class="pl-s1">c</span><span class="pl-kos">,</span> <span class="pl-kos">[</span><span class="pl-s">"id"</span><span class="pl-kos">,</span> <span class="pl-s">"ids"</span><span class="pl-kos">,</span> <span class="pl-s">"debugId"</span><span class="pl-kos">,</span> <span class="pl-s">"name"</span><span class="pl-kos">,</span> <span class="pl-s">"entryModule"</span><span class="pl-kos">,</span> <span class="pl-s">"files"</span><span class="pl-kos">,</span> <span class="pl-s">"rendered"</span><span class="pl-kos">,</span> <span class="pl-s">"hash"</span><span class="pl-kos">,</span> <span class="pl-s">"contentHash"</span><span class="pl-kos">,</span> <span class="pl-s">"renderedHash"</span><span class="pl-kos">,</span> <span class="pl-s">"chunkReason"</span><span class="pl-kos">,</span> <span class="pl-s">"extraAsync"</span><span class="pl-kos">]</span><span class="pl-kos">)</span>
      <span class="pl-kos">)</span><span class="pl-kos">;</span>
    <span class="pl-k">if</span> <span class="pl-kos">(</span><span class="pl-s1">dupeChunks</span><span class="pl-kos">.</span><span class="pl-c1">length</span><span class="pl-kos">)</span> <span class="pl-kos">{</span>
      <span class="pl-smi">console</span><span class="pl-kos">.</span><span class="pl-en">log</span><span class="pl-kos">(</span><span class="pl-s1">dupeChunks</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
    <span class="pl-kos">}</span>
  <span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span></pre></div>
<p dir="auto">Resulting in this output:</p>
<div class="highlight highlight-source-js notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="[ { id: 11,
    ids: [ 11 ],
    debugId: 1021,
    name: 'highcharts',
    entryModule: undefined,
    files:
     [ 'split.672955a005ca955ca723.js',
       'split.672955a005ca955ca723.js.map' ],
    rendered: true,
    hash: '672955a005ca955ca7232db2b80f1b7f',
    contentHash: { javascript: '0a19d1f296fc806aaf2e' },
    renderedHash: '672955a005ca955ca723',
    chunkReason: undefined,
    extraAsync: false },
  { id: 11,
    ids: [ 11 ],
    debugId: 1015,
    name: 'channel_dashboard',
    entryModule: undefined,
    files:
     [ 'split.ad76a221da40a498edfb.js',
       'split.ad76a221da40a498edfb.js.map' ],
    rendered: true,
    hash: 'ad76a221da40a498edfb84f74889fc48',
    contentHash: { javascript: 'eb2bbec49673375a4d25' },
    renderedHash: 'ad76a221da40a498edfb',
    chunkReason: undefined,
    extraAsync: false } ]"><pre class="notranslate"><span class="pl-kos">[</span> <span class="pl-kos">{</span> <span class="pl-c1">id</span>: <span class="pl-c1">11</span><span class="pl-kos">,</span>
    <span class="pl-c1">ids</span>: <span class="pl-kos">[</span> <span class="pl-c1">11</span> <span class="pl-kos">]</span><span class="pl-kos">,</span>
    <span class="pl-c1">debugId</span>: <span class="pl-c1">1021</span><span class="pl-kos">,</span>
    <span class="pl-c1">name</span>: <span class="pl-s">'highcharts'</span><span class="pl-kos">,</span>
    <span class="pl-c1">entryModule</span>: <span class="pl-c1">undefined</span><span class="pl-kos">,</span>
    <span class="pl-c1">files</span>:
     <span class="pl-kos">[</span> <span class="pl-s">'split.672955a005ca955ca723.js'</span><span class="pl-kos">,</span>
       <span class="pl-s">'split.672955a005ca955ca723.js.map'</span> <span class="pl-kos">]</span><span class="pl-kos">,</span>
    <span class="pl-c1">rendered</span>: <span class="pl-c1">true</span><span class="pl-kos">,</span>
    <span class="pl-c1">hash</span>: <span class="pl-s">'672955a005ca955ca7232db2b80f1b7f'</span><span class="pl-kos">,</span>
    <span class="pl-c1">contentHash</span>: <span class="pl-kos">{</span> <span class="pl-c1">javascript</span>: <span class="pl-s">'0a19d1f296fc806aaf2e'</span> <span class="pl-kos">}</span><span class="pl-kos">,</span>
    <span class="pl-c1">renderedHash</span>: <span class="pl-s">'672955a005ca955ca723'</span><span class="pl-kos">,</span>
    <span class="pl-c1">chunkReason</span>: <span class="pl-c1">undefined</span><span class="pl-kos">,</span>
    <span class="pl-c1">extraAsync</span>: <span class="pl-c1">false</span> <span class="pl-kos">}</span><span class="pl-kos">,</span>
  <span class="pl-kos">{</span> <span class="pl-c1">id</span>: <span class="pl-c1">11</span><span class="pl-kos">,</span>
    <span class="pl-c1">ids</span>: <span class="pl-kos">[</span> <span class="pl-c1">11</span> <span class="pl-kos">]</span><span class="pl-kos">,</span>
    <span class="pl-c1">debugId</span>: <span class="pl-c1">1015</span><span class="pl-kos">,</span>
    <span class="pl-c1">name</span>: <span class="pl-s">'channel_dashboard'</span><span class="pl-kos">,</span>
    <span class="pl-c1">entryModule</span>: <span class="pl-c1">undefined</span><span class="pl-kos">,</span>
    <span class="pl-c1">files</span>:
     <span class="pl-kos">[</span> <span class="pl-s">'split.ad76a221da40a498edfb.js'</span><span class="pl-kos">,</span>
       <span class="pl-s">'split.ad76a221da40a498edfb.js.map'</span> <span class="pl-kos">]</span><span class="pl-kos">,</span>
    <span class="pl-c1">rendered</span>: <span class="pl-c1">true</span><span class="pl-kos">,</span>
    <span class="pl-c1">hash</span>: <span class="pl-s">'ad76a221da40a498edfb84f74889fc48'</span><span class="pl-kos">,</span>
    <span class="pl-c1">contentHash</span>: <span class="pl-kos">{</span> <span class="pl-c1">javascript</span>: <span class="pl-s">'eb2bbec49673375a4d25'</span> <span class="pl-kos">}</span><span class="pl-kos">,</span>
    <span class="pl-c1">renderedHash</span>: <span class="pl-s">'ad76a221da40a498edfb'</span><span class="pl-kos">,</span>
    <span class="pl-c1">chunkReason</span>: <span class="pl-c1">undefined</span><span class="pl-kos">,</span>
    <span class="pl-c1">extraAsync</span>: <span class="pl-c1">false</span> <span class="pl-kos">}</span> <span class="pl-kos">]</span></pre></div>
<hr>
<p dir="auto">I've only seen this happen when using recordsPath.  If I delete my webpack records &amp; re-build, all the chunk ids are unique.</p>
<p dir="auto">The most recent time I've seen this, my webpack records started like this:</p>
<div class="highlight highlight-source-json notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="  &quot;chunks&quot;: {
    &quot;byName&quot;: {
      &quot;vendors~polyfills&quot;: 1,
      &quot;polyfills&quot;: 2,
      &quot;vendors~backend~highcharts&quot;: 5,
      &quot;vendors~markdownediting~uploader&quot;: 19,
      &quot;vendors~t_store&quot;: 20,
      &quot;vendors~uploader&quot;: 21,
      &quot;v4player&quot;: 10,
      &quot;highcharts&quot;: 11,
      &quot;channel_dashboard&quot;: 16,
      &quot;motherchannel&quot;: 17,
      &quot;embedediting&quot;: 18,
      &quot;markdownediting&quot;: 19,
      &quot;t_store&quot;: 20,
      &quot;uploader&quot;: 21,
      &quot;backend&quot;: 22,
      &quot;qrcodes&quot;: 23,
      &quot;recommended-follows&quot;: 24,
      &quot;auth-modal&quot;: 25,
      &quot;preload&quot;: 26,
      &quot;vendors~application~embed_player~embed_player_square_ad&quot;: 27,
      &quot;vendors~application~embed_player_square_ad&quot;: 28,
      &quot;embed_player_square_ad&quot;: 29,
      &quot;embed_player&quot;: 30,
      &quot;application&quot;: 31,
      &quot;vendors~embed_player_square_ad~v4player&quot;: 10,
      &quot;channel_dashboard~highcharts&quot;: 11
    },"><pre class="notranslate">  <span class="pl-ent">"chunks"</span>: {
    <span class="pl-ent">"byName"</span>: {
      <span class="pl-ent">"vendors~polyfills"</span>: <span class="pl-c1">1</span>,
      <span class="pl-ent">"polyfills"</span>: <span class="pl-c1">2</span>,
      <span class="pl-ent">"vendors~backend~highcharts"</span>: <span class="pl-c1">5</span>,
      <span class="pl-ent">"vendors~markdownediting~uploader"</span>: <span class="pl-c1">19</span>,
      <span class="pl-ent">"vendors~t_store"</span>: <span class="pl-c1">20</span>,
      <span class="pl-ent">"vendors~uploader"</span>: <span class="pl-c1">21</span>,
      <span class="pl-ent">"v4player"</span>: <span class="pl-c1">10</span>,
      <span class="pl-ent">"highcharts"</span>: <span class="pl-c1">11</span>,
      <span class="pl-ent">"channel_dashboard"</span>: <span class="pl-c1">16</span>,
      <span class="pl-ent">"motherchannel"</span>: <span class="pl-c1">17</span>,
      <span class="pl-ent">"embedediting"</span>: <span class="pl-c1">18</span>,
      <span class="pl-ent">"markdownediting"</span>: <span class="pl-c1">19</span>,
      <span class="pl-ent">"t_store"</span>: <span class="pl-c1">20</span>,
      <span class="pl-ent">"uploader"</span>: <span class="pl-c1">21</span>,
      <span class="pl-ent">"backend"</span>: <span class="pl-c1">22</span>,
      <span class="pl-ent">"qrcodes"</span>: <span class="pl-c1">23</span>,
      <span class="pl-ent">"recommended-follows"</span>: <span class="pl-c1">24</span>,
      <span class="pl-ent">"auth-modal"</span>: <span class="pl-c1">25</span>,
      <span class="pl-ent">"preload"</span>: <span class="pl-c1">26</span>,
      <span class="pl-ent">"vendors~application~embed_player~embed_player_square_ad"</span>: <span class="pl-c1">27</span>,
      <span class="pl-ent">"vendors~application~embed_player_square_ad"</span>: <span class="pl-c1">28</span>,
      <span class="pl-ent">"embed_player_square_ad"</span>: <span class="pl-c1">29</span>,
      <span class="pl-ent">"embed_player"</span>: <span class="pl-c1">30</span>,
      <span class="pl-ent">"application"</span>: <span class="pl-c1">31</span>,
      <span class="pl-ent">"vendors~embed_player_square_ad~v4player"</span>: <span class="pl-c1">10</span>,
      <span class="pl-ent">"channel_dashboard~highcharts"</span>: <span class="pl-c1">11</span>
    },</pre></div>
<p dir="auto">and ended like this:</p>
<div class="highlight highlight-source-json notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="    &quot;byName&quot;: {
      &quot;vendors~polyfills&quot;: 1,
      &quot;polyfills&quot;: 2,
      &quot;vendors~backend~highcharts&quot;: 5,
      &quot;vendors~markdownediting~uploader&quot;: 8,
      &quot;vendors~teepublic_store&quot;: 9,
      &quot;vendors~uploader&quot;: 13,
      &quot;v4player&quot;: 10,
      &quot;highcharts&quot;: 11,
      &quot;channel_dashboard&quot;: 11,
      &quot;motherchannel&quot;: 15,
      &quot;embedediting&quot;: 18,
      &quot;markdownediting&quot;: 19,
      &quot;teepublic_store&quot;: 20,
      &quot;uploader&quot;: 21,
      &quot;backend&quot;: 14,
      &quot;qrcodes&quot;: 23,
      &quot;recommended-follows&quot;: 24,
      &quot;auth-modal&quot;: 25,
      &quot;preload&quot;: 26,
      &quot;vendors~application~embed_player~embed_player_square_ad&quot;: 27,
      &quot;vendors~application~embed_player_square_ad&quot;: 28,
      &quot;embed_player_square_ad&quot;: 29,
      &quot;embed_player&quot;: 30,
      &quot;application&quot;: 31,
      &quot;vendors~embed_player_square_ad~v4player&quot;: 10,
      &quot;channel_dashboard~highcharts&quot;: 11
    },"><pre class="notranslate">    <span class="pl-ent">"byName"</span>: {
      <span class="pl-ent">"vendors~polyfills"</span>: <span class="pl-c1">1</span>,
      <span class="pl-ent">"polyfills"</span>: <span class="pl-c1">2</span>,
      <span class="pl-ent">"vendors~backend~highcharts"</span>: <span class="pl-c1">5</span>,
      <span class="pl-ent">"vendors~markdownediting~uploader"</span>: <span class="pl-c1">8</span>,
      <span class="pl-ent">"vendors~teepublic_store"</span>: <span class="pl-c1">9</span>,
      <span class="pl-ent">"vendors~uploader"</span>: <span class="pl-c1">13</span>,
      <span class="pl-ent">"v4player"</span>: <span class="pl-c1">10</span>,
      <span class="pl-ent">"highcharts"</span>: <span class="pl-c1">11</span>,
      <span class="pl-ent">"channel_dashboard"</span>: <span class="pl-c1">11</span>,
      <span class="pl-ent">"motherchannel"</span>: <span class="pl-c1">15</span>,
      <span class="pl-ent">"embedediting"</span>: <span class="pl-c1">18</span>,
      <span class="pl-ent">"markdownediting"</span>: <span class="pl-c1">19</span>,
      <span class="pl-ent">"teepublic_store"</span>: <span class="pl-c1">20</span>,
      <span class="pl-ent">"uploader"</span>: <span class="pl-c1">21</span>,
      <span class="pl-ent">"backend"</span>: <span class="pl-c1">14</span>,
      <span class="pl-ent">"qrcodes"</span>: <span class="pl-c1">23</span>,
      <span class="pl-ent">"recommended-follows"</span>: <span class="pl-c1">24</span>,
      <span class="pl-ent">"auth-modal"</span>: <span class="pl-c1">25</span>,
      <span class="pl-ent">"preload"</span>: <span class="pl-c1">26</span>,
      <span class="pl-ent">"vendors~application~embed_player~embed_player_square_ad"</span>: <span class="pl-c1">27</span>,
      <span class="pl-ent">"vendors~application~embed_player_square_ad"</span>: <span class="pl-c1">28</span>,
      <span class="pl-ent">"embed_player_square_ad"</span>: <span class="pl-c1">29</span>,
      <span class="pl-ent">"embed_player"</span>: <span class="pl-c1">30</span>,
      <span class="pl-ent">"application"</span>: <span class="pl-c1">31</span>,
      <span class="pl-ent">"vendors~embed_player_square_ad~v4player"</span>: <span class="pl-c1">10</span>,
      <span class="pl-ent">"channel_dashboard~highcharts"</span>: <span class="pl-c1">11</span>
    },</pre></div>
<p dir="auto">Note the multiple chunks with an id of 11.</p>
<hr>
<p dir="auto"><strong>If the current behavior is a bug, please provide the steps to reproduce.</strong></p>
<p dir="auto">Sorry, I'm really struggling to narrow this down.  It seems to come and go at the whim of whatever heuristics drive SplitChunksPlugin.  If someone can confirm this is a bug and it's not immediately obvious why it happens, I'll try harder.</p>
<p dir="auto"><strong>What is the expected behavior?</strong></p>
<p dir="auto">Presumably all compilation chunks should have unique ids?</p>
<p dir="auto"><strong>Other relevant information:</strong><br>
webpack version:  4.11.0<br>
Node.js version: 8.11.1<br>
Operating System: Docker with node:8.11-alpine</p>
<p dir="auto">I'm using <a href="https://github.com/GProst/webpack-clean-obsolete-chunks">https://github.com/GProst/webpack-clean-obsolete-chunks</a>, which expects chunks to have unique ids, and ends up accidentally deleting files when they don't.  If it turns out that chunks are allowed to have duplicate ids, I'll submit a fix to that.</p>
<p dir="auto">webpack 2.1.0-beta.21</p>
<p dir="auto">Sorry if it is a duplicate bug report but at least I failed to find one in so many opened issues.</p>
<p dir="auto">ExtractTextPlugin is not enabled, CommonsChunkPlugin is not enabled, happypack is not enabled.. it just broke, sometimes.</p>
<p dir="auto">Config: <a href="https://github.com/vijos/vj4/blob/6c06305e9481c0f13c8c3faa3198c58b2f686505/webpack.config.babel.js">https://github.com/vijos/vj4/blob/6c06305e9481c0f13c8c3faa3198c58b2f686505/webpack.config.babel.js</a><br>
Command line: <code class="notranslate">webpack --progress --color --display-error-details --env.watch -d --watch</code>.</p>
<p dir="auto">Although extractTextPlugin, commonsChunkPlugin and happypack is mentioned in the configuration, they are not enabled because we passed <code class="notranslate">env.watch</code>.</p>
<p dir="auto">We only generate one entry <code class="notranslate">vj4.js</code> in watch mode. And after changing some file (for example, <code class="notranslate">vj4/ui/misc/sad_twd2.svg</code>), <code class="notranslate">vj4.js</code> becomes:</p>
<div class="highlight highlight-source-js notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="webpackJsonp([15],[
/* 0 */,
/* 1 */
/***/ function(module, exports, __webpack_require__) {

&quot;use strict&quot;;
'use strict';"><pre class="notranslate"><span class="pl-s1">webpackJsonp</span><span class="pl-kos">(</span><span class="pl-kos">[</span><span class="pl-c1">15</span><span class="pl-kos">]</span><span class="pl-kos">,</span><span class="pl-kos">[</span>
<span class="pl-c">/* 0 */</span><span class="pl-kos">,</span>
<span class="pl-c">/* 1 */</span>
<span class="pl-c">/***/</span> <span class="pl-k">function</span><span class="pl-kos">(</span><span class="pl-s1">module</span><span class="pl-kos">,</span> <span class="pl-s1">exports</span><span class="pl-kos">,</span> <span class="pl-s1">__webpack_require__</span><span class="pl-kos">)</span> <span class="pl-kos">{</span>

<span class="pl-s">"use strict"</span><span class="pl-kos">;</span>
<span class="pl-s">'use strict'</span><span class="pl-kos">;</span></pre></div>
<p dir="auto">It fails because <code class="notranslate">webpackJsonp</code> is undefined.</p>
<h3 dir="auto">Reproduce</h3>
<ol dir="auto">
<li>watch</li>
</ol>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="git clone https://github.com/vijos/vj4.git
cd vj4
git checkout 6c06305e9481c0f13c8c3faa3198c58b2f686505
node scripts/fix_abroad_shrinkwrap.js  # we use a China mirror which is slow for you so that you need this line
npm install
npm run watch"><pre class="notranslate">git clone https://github.com/vijos/vj4.git
<span class="pl-c1">cd</span> vj4
git checkout 6c06305e9481c0f13c8c3faa3198c58b2f686505
node scripts/fix_abroad_shrinkwrap.js  <span class="pl-c"><span class="pl-c">#</span> we use a China mirror which is slow for you so that you need this line</span>
npm install
npm run watch</pre></div>
<ol start="2" dir="auto">
<li>verify correctness</li>
</ol>
<p dir="auto">check <code class="notranslate">vj4/.uibuild/vj4.js</code> to see a correct build:</p>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="head -n 5 vj4/.uibuild/vj4.js"><pre class="notranslate">head -n 5 vj4/.uibuild/vj4.js</pre></div>
<div class="highlight highlight-source-js notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="/******/ (function(modules) { // webpackBootstrap
/******/    // install a JSONP callback for chunk loading
/******/    var parentJsonpFunction = window[&quot;webpackJsonp&quot;];
/******/    window[&quot;webpackJsonp&quot;] = function webpackJsonpCallback(chunkIds, moreModules, executeModules) {
/******/        // add &quot;moreModules&quot; to the modules object,"><pre class="notranslate"><span class="pl-c">/******/</span> <span class="pl-kos">(</span><span class="pl-k">function</span><span class="pl-kos">(</span><span class="pl-s1">modules</span><span class="pl-kos">)</span> <span class="pl-kos">{</span> <span class="pl-c">// webpackBootstrap</span>
<span class="pl-c">/******/</span>    <span class="pl-c">// install a JSONP callback for chunk loading</span>
<span class="pl-c">/******/</span>    <span class="pl-k">var</span> <span class="pl-s1">parentJsonpFunction</span> <span class="pl-c1">=</span> <span class="pl-smi">window</span><span class="pl-kos">[</span><span class="pl-s">"webpackJsonp"</span><span class="pl-kos">]</span><span class="pl-kos">;</span>
<span class="pl-c">/******/</span>    <span class="pl-smi">window</span><span class="pl-kos">[</span><span class="pl-s">"webpackJsonp"</span><span class="pl-kos">]</span> <span class="pl-c1">=</span> <span class="pl-k">function</span> <span class="pl-s1">webpackJsonpCallback</span><span class="pl-kos">(</span><span class="pl-s1">chunkIds</span><span class="pl-kos">,</span> <span class="pl-s1">moreModules</span><span class="pl-kos">,</span> <span class="pl-s1">executeModules</span><span class="pl-kos">)</span> <span class="pl-kos">{</span>
<span class="pl-c">/******/</span>        <span class="pl-c">// add "moreModules" to the modules object,</span></pre></div>
<ol start="3" dir="auto">
<li>change some file</li>
</ol>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="echo &quot;&lt;!-- foo --&gt;&quot; &gt;&gt; vj4/ui/misc/sad_twd2.svg"><pre class="notranslate"><span class="pl-c1">echo</span> <span class="pl-s"><span class="pl-pds">"</span>&lt;!-- foo --&gt;<span class="pl-pds">"</span></span> <span class="pl-k">&gt;&gt;</span> vj4/ui/misc/sad_twd2.svg</pre></div>
<ol start="4" dir="auto">
<li>let's change again!</li>
</ol>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="echo &quot;&lt;!-- foo --&gt;&quot; &gt;&gt; vj4/ui/misc/sad_twd2.svg"><pre class="notranslate"><span class="pl-c1">echo</span> <span class="pl-s"><span class="pl-pds">"</span>&lt;!-- foo --&gt;<span class="pl-pds">"</span></span> <span class="pl-k">&gt;&gt;</span> vj4/ui/misc/sad_twd2.svg</pre></div>
<ol start="5" dir="auto">
<li>bang!</li>
</ol>
<p dir="auto">check <code class="notranslate">vj4/.uibuild/vj4.js</code> to see a corrupted build:</p>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="head -n 5 vj4/.uibuild/vj4.js"><pre class="notranslate">head -n 5 vj4/.uibuild/vj4.js</pre></div>
<div class="highlight highlight-source-js notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="webpackJsonp([15],[
/* 0 */,
/* 1 */
/***/ function(module, exports, __webpack_require__) {
"><pre class="notranslate"><span class="pl-s1">webpackJsonp</span><span class="pl-kos">(</span><span class="pl-kos">[</span><span class="pl-c1">15</span><span class="pl-kos">]</span><span class="pl-kos">,</span><span class="pl-kos">[</span>
<span class="pl-c">/* 0 */</span><span class="pl-kos">,</span>
<span class="pl-c">/* 1 */</span>
<span class="pl-c">/***/</span> <span class="pl-k">function</span><span class="pl-kos">(</span><span class="pl-s1">module</span><span class="pl-kos">,</span> <span class="pl-s1">exports</span><span class="pl-kos">,</span> <span class="pl-s1">__webpack_require__</span><span class="pl-kos">)</span> <span class="pl-kos">{</span></pre></div>