``` ░▒▓████████▓▒░░▒▓███████▓▒░▒▓███████▓▒░ ░▒▓█▓▒░ ░▒▓█▓▒░ ░▒▓█▓▒░░▒▓█▓▒░ ░▒▓█▓▒░ ░▒▓█▓▒░ ░▒▓█▓▒░░▒▓█▓▒░ ░▒▓██████▓▒░ ░▒▓██████▓▒░░▒▓███████▓▒░ ░▒▓█▓▒░ ░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░ ░▒▓█▓▒░ ░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░ ░▒▓████████▓▒░▒▓███████▓▒░░▒▓█▓▒░░▒▓█▓▒░ ``` # esr This is a simple esbuild-powered dev server. It has livereloading. It's fast. It's configured with YAML. For the minimalist. For the developer who misses the old web. For the developer who is tired of configuring your build tools. ## Quickstart ```bash # In an empty directory $ esr init $ esr --serve src/index.ts esr :: Serving on http://localhost:1234 ``` `src/index.ts` is bundled and included in the HTML page served at the address above. ## Example configuration These are all defaults. You don't need to do any of this. You can if you want to, but you don't have to. ```yml # Defaults bundle: true platform: browser # browser | node format: esm # esm | cjs | iife outdir: public minify: false minifyWhitespace: false minifyIdentifiers: false sourcemap: true # Optional. Applies to `--serve`, or `--run --watch`. # Files that match these paths trigger reload or rerun when they are changed. watch: paths: ['src/**/*.{ts,tsx,css}', 'public/index.html'] # Each mode inherits from the configuration above, but can # override certain options as needed. serve: html: public/index.html port: 1234 # When building, you might want to override some of the defaults build: minify: true minifyWhitespace: true minifyIdentifiers: true sourcemap: false run: # For example: runtime: bun # node | bun | ?? jsx: automatic jsxFactory: React.createElement # By default, loader is undefined. # You can define loaders with the `loader` property, like this: loader: .js: jsx .ts: tsx ``` When serving an index.html, you can use `{{ livereload }}` to inject the livereload EventSource logic, and `{{ js }}` and `{{ css }}` to inject tags for built assets. ```html Application {{ css }}
{{ livereload }} {{ js }} ```