esbuild-wasm-bundler/README.md
2024-07-05 08:54:39 -04:00

1.6 KiB

ESBuild Typescript Bunder

Supports import maps and runs on Deno Deploy

Uses the WASM version of ESBuild for use on Deno Deploy and adds some plugins to allow for import maps. Unfortunately, npm:* and jsr:* specifiers are not supported currently.

Manual Bundle API

import Bundle from "./mod.ts";
Bundle(
    // directory to work from
    "./some_folder",

    // ESBuild configuration (entry points are relative to "directory"):
    {entry:["./app.tsx"]},

    // import map (if omitted, will scan for a deno configuration within "directory" and use that)
    {"imports": {
        "react": "https://esm.sh/preact@10.22.0/compat",
        "react/": "https://esm.sh/preact@10.22.0/compat/"
    }}
);
if(outputFiles){
    for(const item of outputFiles){
        // do something with the output...
        console.log(item.text);
    }
}

Static bundle server

API

import Serve from "./serve.tsx";
Serve({path:"./some_folder", html:"index.html", port:8080});

CLI

deno run -A <hosted-location>/serve.tsx --path=./some_folder --html=index.html --port=8080

Accepts three optional settings:

  • path A directory to serve content from. Defaults to the current working directory.
  • html A path to an html file or actual html string to always use when the server would serve up a non-file route. If html is a path, it is assumed to be relative to path. If not specified, routes that don't match files will 404.
  • port Port number (default is 8000).

When requests to typescript files are made to the server, it will treat that file as an entrypoint and return the corresponding plain javascript bundle.