test | ||
deno.json | ||
deno.lock | ||
introspect.ts | ||
jsapi.test.tsx | ||
mod.ts | ||
README.md | ||
serve.tsx |
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. Ifhtml
is a path, it is assumed to be relative topath
. 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.