Read more

Webpacker: Loading code on demand

Henning Koch
April 22, 2021Software engineer at makandra GmbH

Sometimes you want to load code on demand. For instance, when a a large library is only used on a single screen, this library should only be loaded for that screen. It should not blow up the bundle size for all screens.

Illustration web development

Do you need DevOps-experts?

Your development team has a full backlog? No time for infrastructure architecture? Our DevOps team is ready to support you!

  • We build reliable cloud solutions with Infrastructure as code
  • We are experts in security, Linux and databases
  • We support your dev team to perform
Read more Show archive.org snapshot

You can load code on demand by using import() as a function (with parentheses) instead of using it as a keyword import (without parentheses). The import() function returns a promise with the exported variables:

let exports = await import('large-library')

console.log("A named export is ", exports.exportedName)
console.log("Default export is ", exports.default)

Webpack will build a new .js file for the code that is loaded on-demand:

public/
  packs/
    application-b1762adc0d6538318dec.js  # your pack
    0-d15ee844981f2f70c164.chunk.js      # the dynamically generated chunk

Note that the chunk is created automatically by Webpack. You don't need to manually create a new pack.

Because the chunk is loaded into an existing Webpack environment, it contains less boilerplate (for the Webpack module registry etc.) than a pack.

Learn more

Posted by Henning Koch to makandra dev (2021-04-22 09:32)