esp

@graysonlang/esp

A collection of esbuild plugins and utilities — a build runner with a dev server, live reload and browser launching, plus plugins for globbed asset copying, linting with biome or ESLint, Emscripten, and VS Code problem matching.

This page is the package's own example build — scripts/build.mjs bundling example/ into www/. Every panel below is measured live in the browser, so it doubles as a check that the runner, the plugins, and the dev server are each doing their job.

npm install @graysonlang/esp

Dev server esbuild-runner

Where this page is being served from. Ports are derived from the build script's path, so two checkouts never collide — npm run ports prints them.

Watch & live reload --watch --serve

The runner injects a banner that reloads this tab when a build finishes.

Edit example/app/main.js and save — the reload counter should tick up.

Copied assets esbuild-plugin-glob-copy

Paths come from import { paths } from 'virtual:glob' in example/src/index.js; each one is fetched back to confirm the plugin really copied it into the output directory.

    Build toasts --proxy

    With --proxy, plugin log output from the terminal is forwarded to this page as toasts in the lower right.

    Save any source file under example/ to see the glob plugin's copied N files message pop in. Started without --proxy, nothing is injected — run npm run dev.

    Source maps --sourcemap

    Throw from a known line to check that stacks and breakpoints land in the original source.

    The console stack should point at example/app/main.js, not www/main.js.