Loader and plugin for webpack to add proxied asset as a chunk file

Usage no npm install needed!

<script type="module">
  import extractFileLoader from 'https://cdn.skypack.dev/extract-file-loader';


Extract file loader for webpack

Reason for this module:

  • assets-webpack-plugin generates a manifest of emitted files for each chunk
  • file-loader emits files, but they are not added to the chunk files
  • this loader is used as a proxy to include this emitted file in the chunk so it's available in generated manifest


//                       %3F = ?                    %21 = !

Why did you put asset in the query string?!

Asset to require internally is provided via q query string parameter.

This is to avoid collisions with rules in your configuration file, where you configure loaders by their extensions.

Keep in mind that you have to fully URL-encode the asset as webpack will not parse it correctly if you don't (there cannot be any literal ! inside the query)

Example configuration

See example configuration in test directory.

Test is functional - it checks if that configuration produces manifest with correct png file entry.

Use cases

Use this for requiring binary files (like images) as entry points.

This module is to be used with some pre/post-processing, as by default this loader still produces javascript file - path to asset is only added in the manifest.