Bundling

deno bundle [URL] will output a single JavaScript file, which includes all dependencies of the specified input. For example:

  1. deno bundle https://deno.land/std@$STD_VERSION/examples/colors.ts colors.bundle.js
  2. Bundle https://deno.land/std@$STD_VERSION/examples/colors.ts
  3. Download https://deno.land/std@$STD_VERSION/examples/colors.ts
  4. Download https://deno.land/std@$STD_VERSION/fmt/colors.ts
  5. Emit "colors.bundle.js" (9.83KB)

If you omit the out file, the bundle will be sent to stdout.

The bundle can just be run as any other module in Deno would:

  1. deno run colors.bundle.js

The output is a self contained ES Module, where any exports from the main module supplied on the command line will be available. For example, if the main module looked something like this:

  1. export { foo } from "./foo.js";
  2. export const bar = "bar";

It could be imported like this:

  1. import { bar, foo } from "./lib.bundle.js";

Bundles can also be loaded in the web browser. The bundle is a self-contained ES module, and so the attribute of type must be set to "module". For example:

  1. <script type="module" src="website.bundle.js"></script>

Or you could import it into another ES module to consume:

  1. <script type="module">
  2. import * as website from "website.bundle.js";
  3. </script>