46 lines
1.5 KiB
Markdown
46 lines
1.5 KiB
Markdown
# 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
|
|
```typescript
|
|
import Bundle from "./mod.ts";
|
|
Bundle(
|
|
// ESBuild configuration:
|
|
{entry:["./app.tsx"]},
|
|
|
|
// import map:
|
|
{"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
|
|
```typescript
|
|
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.
|