Go to file
2024-10-09 14:33:06 -04:00
cmd/esr first 2024-10-09 14:22:28 -04:00
internal first 2024-10-09 14:22:28 -04:00
go.mod first 2024-10-09 14:22:28 -04:00
go.sum first 2024-10-09 14:22:28 -04:00
Makefile first 2024-10-09 14:22:28 -04:00
README.md ok 2024-10-09 14:33:06 -04:00


                           ░▒▓████████▓▒░░▒▓███████▓▒░▒▓███████▓▒░
                           ░▒▓█▓▒░      ░▒▓█▓▒░      ░▒▓█▓▒░░▒▓█▓▒░
                           ░▒▓█▓▒░      ░▒▓█▓▒░      ░▒▓█▓▒░░▒▓█▓▒░
                           ░▒▓██████▓▒░  ░▒▓██████▓▒░░▒▓███████▓▒░
                           ░▒▓█▓▒░             ░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░
                           ░▒▓█▓▒░             ░▒▓█▓▒░▒▓█▓▒░░▒▓█▓▒░
                           ░▒▓████████▓▒░▒▓███████▓▒░░▒▓█▓▒░░▒▓█▓▒░

esr

This is a simple esbuild-powered dev server. It has livereloading. It's fast. It's configured with YAML.

The end.

Example configuration

# Defaults
bundle: true
platform: browser
format: esm
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}', '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> <outfile>
  runtime: 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 }} to inject a script tag for the built output file.

<!DOCTYPE html>
<html lang="en">

<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>Application</title>
</head>

<body>
	<div id="app"></div>
	{{ livereload }}
	{{ js }}
</body>

</html>